一、set集合的方法

set不是特别常用,但是set的一些特性可以方便处理一些特殊情况。

集合(set)是一个无序不重复元素的序列。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:

parame = {value01,value02,...} 或者 set(value)
>>>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket) # 这里演示的是去重功能
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket # 快速判断元素是否在集合内 True
>>> 'crabgrass' in basket
False
>>> # 下面展示两个集合间的运算. ...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a {'a', 'r', 'b', 'c', 'd'}
>>> a - b # 集合a中包含元素 {'r', 'd', 'b'}
>>> a | b # 集合a或b中包含的所有元素 {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b # 集合a和b中都包含了的元素 {'a', 'c'}
>>> a ^ b # 不同时包含于a和b的元素 {'r', 'd', 'b', 'm', 'z', 'l'}

类似列表推导式,同样集合支持集合推导式(Set comprehension):

>>>a = {x for x in 'abracadabra' if x not in 'abc'}
>>> a {'r', 'd'}


二、集合的基本操作

1、添加元素

语法格式如下:

s.add( x )

将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。

>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.add("Facebook")
>>> print(thisset)
{'Taobao', 'Facebook', 'Google', 'Runoob'}

还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等,语法格式如下:

s.update( x )

x 可以有多个,用逗号分开。

>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.update({1,3})
>>> print(thisset)
{1, 3, 'Google', 'Taobao', 'Runoob'}
>>> thisset.update([1,4],[5,6])
>>> print(thisset)
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}
>>>

2、移除元素

语法格式如下:

s.remove( x )

将元素 x 添加到集合 s 中移除,如果元素不存在,则会发生错误。

>>>thisset = set(("Google", "Runoob", "Taobao"))
>>>thisset.remove("Taobao")
>>>print(thisset) {'Google', 'Runoob'}
>>>thisset.remove("Facebook") # 不存在会发生错误
Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'Facebook' >>>

此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。格式如下所示:

s.discard( x )
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>>thisset.discard("Facebook") # 不存在不会发生错误
>>>print(thisset)
{'Taobao', 'Google', 'Runoob'}

我们也可以设置随机删除集合中的一个元素,语法格式如下:

s.pop()
>>>thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
>>>thisset.pop() 'Taobao'
>>>print(thisset)
{'Facebook', 'Google', 'Runoob'}
>>>

3、计算集合元素个数

语法格式如下:

len(s)

计算集合 s 元素个数。

>>>thisset = set(("Google", "Runoob", "Taobao"))
>>>len(thisset)
3

4、清空集合

语法格式如下:

s.clear()

清空集合 s。

>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.clear()
>>> print(thisset)
set()

4、判断元素是否在集合中存在

语法格式如下:

x in s

判断元素 s 是否在集合 x 中存在,存在返回 True,不存在返回 False。

>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> "Runoob" in thisset True
>>> "Facebook" in thisset
False
>>>

三、面试题

1.列表排重?a=[1,2,3,4,5,6,7,5,3,2,1,3,43,5]

>>> a=[1,2,3,4,5,6,7,5,3,2,1,3,43,5]
>>> set(a)
{1, 2, 3, 4, 5, 6, 7, 43}

四、list类解析

>>> help(list)
Help on class list in module builtins:

class list(object)
| list() -> new empty list
| list(iterable) -> new list initialized from iterable's items  (注意这里是可迭代的对象,在python中查看对象 dir(obj、class) 如果包含__iter__方法,就是可迭代对象(可迭代类))
|
| Methods defined here:
|
| __add__(self, value, /)
| Return self+value.
|
| __contains__(self, key, /)
| Return key in self.
|
| __delitem__(self, key, /)
| Delete self[key].
|
| __eq__(self, value, /)
| Return self==value.
|
| __ge__(self, value, /)
| Return self>=value.
|
| __getattribute__(self, name, /)
| Return getattr(self, name).
|
| __getitem__(...)
| x.__getitem__(y) <==> x[y]
|
| __gt__(self, value, /)
| Return self>value.
|
| __iadd__(self, value, /)
| Implement self+=value.
|
| __imul__(self, value, /)
| Implement self*=value.
|
| __init__(self, /, *args, **kwargs)
| Initialize self. See help(type(self)) for accurate signature.
|
| __iter__(self, /)
| Implement iter(self).
|
| __le__(self, value, /)
| Return self<=value.
|
| __len__(self, /)
| Return len(self).
|
| __lt__(self, value, /)
| Return self<value.
|
| __mul__(self, value, /)
| Return self*value.n
|
| __ne__(self, value, /)
| Return self!=value.
|
| __new__(*args, **kwargs) from builtins.type
| Create and return a new object. See help(type) for accurate signature.
|
| __repr__(self, /)
| Return repr(self).
|
| __reversed__(...)
| L.__reversed__() -- return a reverse iterator over the list
|
| __rmul__(self, value, /)
| Return self*value.
|
| __setitem__(self, key, value, /)
| Set self[key] to value.
|
| __sizeof__(...)
| L.__sizeof__() -- size of L in memory, in bytes
|
| append(...)
| L.append(object) -> None -- append object to end
|
| clear(...)
| L.clear() -> None -- remove all items from L
|
| copy(...)
| L.copy() -> list -- a shallow copy of L
|
| count(...)
| L.count(value) -> integer -- return number of occurrences of value
|
| extend(...)
| L.extend(iterable) -> None -- extend list by appending elements from the iterable
|
| index(...)
| L.index(value, [start, [stop]]) -> integer -- return first index of value.
| Raises ValueError if the value is not present.
|
| insert(...)
| L.insert(index, object) -- insert object before index
|
| pop(...)
| L.pop([index]) -> item -- remove and return item at index (default last).
| Raises IndexError if list is empty or index is out of range.
|
| remove(...)
| L.remove(value) -> None -- remove first occurrence of value.
| Raises ValueError if the value is not present.
|
| reverse(...)
| L.reverse() -- reverse *IN PLACE*
|
| sort(...)
| L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*
|
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| __hash__ = None

转载于:https://www.cnblogs.com/forfreewill/articles/9281008.html

【Python3_基础系列_006】Python3-set-集合相关推荐

  1. 【Python3_进阶系列_006】Python3-单例模式

    一.单例模式 Python3中常见的实现单例模式的方法有2种:__new__()和装饰器写法 例子:__new__()方法实现单例 class Singleton():def __new__(cls, ...

  2. python基础系列教程——Python3.x标准模块库目录

    全栈工程师开发手册 (作者:栾鹏) python教程全解 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata:U ...

  3. 【Python3_基础系列_009】Python3-条件语句-If

    一.if语句用法 if分支判断是编程语言的必备的语法规则,python中if ..elif..else的用法如下: if condition:Statement1 elif condition:sta ...

  4. 【Python3_基础系列_012】Python3-异常与断言

    一.异常 python中对于异常的处理和其他语言的非常相似, 1.异常获取与处理: try:suite1 #测试语句块 except exception1:suite2 #如果测试语句suite1中发 ...

  5. Java基础系列【导读】

    Java基础系列导读 Java基础 JaveWEB Java基础 基础系列[一]-- Java语言介绍 基础系列[二]-- 环境搭建 基础系列[三]-- Java基础语法 基础系列[四]-- 面向对象 ...

  6. 【Python】Python系列教程-- Python3 编程第一步(十八)

    文章目录 前言 打印字符串: 输出变量值: 定义变量并进行简单的数学运算 使用 for 循环打印数字 0 到 4: 根据条件输出不同的结果: end 关键字 前言 往期回顾: Python系列教程–P ...

  7. python 基础系列(二) — Python基本语法

    python 基础系列(二) - Python基本语法 python基础系列索引 python 基础系列(一) - Python介绍 python 基础系列(二) - Python基本语法 pytho ...

  8. javascript基础系列(入门前须知)

    -----------------------小历史---------------------------- javascript与java是两种语言,他们的创作公司不同,JavaScript当时是借 ...

  9. java 百分比相加_2019年Java面试题基础系列228道(5),快看看哪些你还不会?

    2019年Java面试题基础系列228道 Java面试题(一) 第一篇更新1~20题的答案解析 第二篇更新21~50题答案解析 第三篇更新51~95题答案解析 Java面试题(二) 第四篇更新1~20 ...

最新文章

  1. Spring中JdbcTemplate中使用RowMapper
  2. 一文读懂深响年度大会,增长密码藏在这些关键词里
  3. mysql-数据表的定义操作
  4. keras 官方文档
  5. 升降压斩波电路matlab,升降压斩波电路的MATLAB 仿真.pptx
  6. python根据excel数据生成柱状图并导出成图片格式
  7. 记录-如何在集成RTL8168网卡的主板上安装ESXi6.0
  8. vue脚手架项目使用element-ui
  9. 一文教你搞定PMOS管选型
  10. Noip前的大抱佛脚----赛前任务
  11. 【项目】Thinkphp5.1制作博客CMS
  12. Python——二进制16位加法器(采用手算二进制加法的过程实现)(tkinter实现)【2021-07-08】
  13. 微信小程序 上传多张图片
  14. T94 EndNote Journal List批量更新方案
  15. 删除Symbian模拟器中测试程序的方法
  16. oa人员导入模板_巧用OA系统模板办公,让重复的事情简单做
  17. 大连理工卢湖川团队TMI顶刊新作 | M^2SNet: 新颖多尺度模块 + 智能损失函数 = 通用图像分割SOTA网络
  18. C#制作简易屏保(转)
  19. Riak学习(2):java连接Riak服务,使用Protocol Buffers连接
  20. mysql 短整型_C++ int,short,long(详解版)

热门文章

  1. Error: The INF file contains Unicode characters that could not be converted correctly
  2. uestc 1012 饭卡
  3. DataCleaner 3.1.1 发布,数据质量分析管理
  4. PHP 利用AJAX获取网页并输出(原创自Zjmainstay)
  5. 调试 后台 ajax post 对应的php的方法
  6. 【Leetcode】刷题之路3(python版)
  7. kafka集群为什么需要三个节点_每天处理千亿级日志量,Kafka是如何做到的?
  8. php取后三字符串,php字符串截取问题
  9. 服务器用户没有读取权限,Windows找不到文件或没有读取权限怎么办
  10. 同源策略禁止读取位于_用浏览器缓存绕过同源策略(SOP)限制