转载自:http://hi.baidu.com/����_xu/blog/item/5b9650c513bd3f049d163d8b.html 

python的set和其他语言类似, 是一个 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.

>>> basket = [’apple’, ’orange’, ’apple’, ’pear’, ’orange’, ’banana’]
>>> fruit = set(basket) # create a set without duplicates
>>> fruit
set([’orange’, ’pear’, ’apple’, ’banana’])
>>> ’orange’ in fruit # fast membership testing
True
>>> ’crabgrass’ in fruit
False
>>> # Demonstrate set operations on unique letters from two words
...
>>> a = set(’abracadabra’)
>>> b = set(’alacazam’)
>>> a # unique letters in a
set([’a’, ’r’, ’b’, ’c’, ’d’])
>>> a - b # letters in a but not in b
set([’r’, ’d’, ’b’])
>>> a | b # letters in either a or b
set([’a’, ’c’, ’r’, ’d’, ’b’, ’m’, ’z’, ’l’])
>>> a & b # letters in both a and b
set([’a’, ’c’])
>>> a ^ b # letters in a or b but not both
set([’r’, ’d’, ’b’, ’m’, ’z’, ’l’])

len(s)

set 的长度

x in s

测试 x 是否是 s 的成员

x not in s

测试 x 是否不是 s 的成员

s.issubset(t)
s <= t
测试是否 s 中的每一个元素都在 t 中

s.issuperset(t)
s >= t
测试是否 t 中的每一个元素都在 s 中

s.union(t)
s | t
返回一个新的 set 包含 s 和 t 中的每一个元素

s.intersection(t)
s & t
返回一个新的 set 包含 s 和 t 中的公共元素

s.difference(t)
s - t
返回一个新的 set 包含 s 中有但是 t 中没有的元素

s.symmetric_difference(t)
s ^ t
返回一个新的 set 包含 s 和 t 中不重复的元素

s.copy()

返回 set “s”的一个浅复制

请 注意:union(), intersection(), difference() 和 symmetric_difference() 的非运算符(non-operator,就是形如 s.union()这样的)版本将会接受任何 iterable 作为参数。相反,它们的运算符版本(operator based counterparts)要求参数必须是 sets。这样可以避免潜在的错误,如:为了更可读而使用 set('abc') & 'cbs' 来替代 set('abc').intersection('cbs')。从 2.3.1 版本中做的更改:以前所有参数都必须是 sets。

另 外,Set 和 ImmutableSet 两者都支持 set 与 set 之间的比较。两个 sets 在也只有在这种情况下是相等的:每一个 set 中的元素都是另一个中的元素(二者互为subset)。一个 set 比另一个 set 小,只有在第一个 set 是第二个 set 的 subset 时(是一个 subset,但是并不相等)。一个 set 比另一个 set 打,只有在第一个 set 是第二个 set 的 superset 时(是一个 superset,但是并不相等)。

子 set 和相等比较并不产生完整的排序功能。例如:任意两个 sets 都不相等也不互为子 set,因此以下的运算都会返回 False:a<b, a==b, 或者a>b。因此,sets 不提供 __cmp__ 方法。

因为 sets 只定义了部分排序功能(subset 关系),list.sort() 方法的输出对于 sets 的列表没有定义。

运算符
   运算结果

hash(s)
   返回 s 的 hash 值

下面这个表列出了对于 Set 可用二对于 ImmutableSet 不可用的运算:

运算符(voperator)
等价于
运算结果

s.update(t)
s |= t
返回增加了 set “t”中元素后的 set “s”

s.intersection_update(t)
s &= t
返回只保留含有 set “t”中元素的 set “s”

s.difference_update(t)
s -= t
返回删除了 set “t”中含有的元素后的 set “s”

s.symmetric_difference_update(t)
s ^= t
返回含有 set “t”或者 set “s”中有而不是两者都有的元素的 set “s”

s.add(x)

向 set “s”中增加元素 x

s.remove(x)

从 set “s”中删除元素 x, 如果不存在则引发 KeyError

s.discard(x)

如果在 set “s”中存在元素 x, 则删除

s.pop()

删除并且返回 set “s”中的一个不确定的元素, 如果为空则引发 KeyError

s.clear()

删除 set “s”中的所有元素

请 注意:非运算符版本的 update(), intersection_update(), difference_update()和symmetric_difference_update()将会接受任意 iterable 作为参数。从 2.3.1 版本做的更改:以前所有参数都必须是 sets。

还请注意:这个模块还包含一个 union_update() 方法,它是 update() 方法的一个别名。包含这个方法是为了向后兼容。程序员们应该多使用 update() 方法,因为这个方法也被内置的 set() 和 frozenset() 类型支持。

Python set模块使用方法相关推荐

  1. python卸载模块的方法汇总_Python卸载模块的方法

    easy_install 卸载 通过easy_install 安装的模块可以直接通过 easy_install -m PackageName 卸载,然后删除\Python27\Lib\site-pac ...

  2. python datetime模块-Python datetime模块使用方法小结

    datetime模块 当前日期 datetime.date.today() datetime.date(2020, 4, 24) 转换元祖 >>> datetime.date.tim ...

  3. python安装模块的方法(两种方法,复制即可用)

    这里简单的介绍python安装模块的两种方法. 第一种 在pycharm中安装模块 我这里是因为已经安装了,所以会出现这个. # 安装模块 # pip install 模块名 # 可以指定安装版本 如 ...

  4. python卸载模块的方法汇总_Python卸载模块的方法汇总

    本文给大家汇总介绍了3种卸载Python已安装模块的方法,推荐大家使用easy_install或者pip的方式来进行,简单方便 easy_install 卸载 通过easy_install 安装的模块 ...

  5. python threading模块的方法_Python THREADING模块中的JOIN()方法深入理解

    看了oschina上的两个代码,受益匪浅.其中对join()方法不理解,看python官网文档的介绍: join([timeout]):等待直到进程结束.这将阻塞正在调用的线程,直到被调用join() ...

  6. Python -itertools模块combinations方法

    itertools模块combinations(iterable, r)方法可以创建一个迭代器,返回iterable中所有长度为r的子序列,返回的子序列中的项按输入iterable中的顺序排序. 例1 ...

  7. python json模块rodas方法_json模块使用总结——Python

    # 原创文章,未经允许请勿转载 通过Python的json模块,可以将字符串形式的json数据转化为字典,也可以将Python中的字典数据转化为字符串形式的json数据. 之前使用这个模块时,都是随用 ...

  8. python serial 模块使用方法

    一.概述     pyserial模块封装了对串口的访问. 二.特性     在支持的平台上有统一的接口.     通过python属性访问串口设置.     支持不同的字节大小.停止位.校验位和流控 ...

  9. python os模块安装方法_基于python中pygame模块的Linux下安装过程(详解)

    一.使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip.在Python3中,pip有时被称为pip3. 1.在Linux和OS X系统中检查 ...

最新文章

  1. 图形处理(十二)拉普拉斯网格优化、最小二乘网格模型光顺
  2. ASP.NET MVC网站学习问题积累(一)
  3. 2017.3.8 太空飞行计划问题 失败总结
  4. Teamcenter 入门开发系列问答(2)
  5. 计算机软考网络工程师,软考之网络工程师总结
  6. 微信语音技术原理_微信语音多群直播原理-一起学堂
  7. 49 张图详解 WiFi 的 26 个知识点
  8. 高手过招的乐趣---测试用例预演
  9. 【RNNoise】用深度学习抑制噪声
  10. unity 移动开发优化二 图形优化,脚本优化概述
  11. 深度学习word2vec笔记之基础篇
  12. 概率论笔记1.5伯努利模型(二项分布)
  13. 服务器系统整机拷贝,服务器主机整机拷贝
  14. 如何求两个序列的相似度
  15. 深入篇【C++】类与对象:友元函数与友元类
  16. 线程池面试题灵魂三问
  17. 2013新的一年马上到来了
  18. 【2022分布式存储峰会】腾讯云存储为您带来:云原生时代下的数据湖存储服务
  19. cad转pdf怎么变成黑白?说一个办法
  20. 制作杂志级图表的第三步:突破excel的图表类型

热门文章

  1. 更新k8s镜像版本的三种方式
  2. 女子监狱第一季/全集Orange Is the New Black迅雷下载
  3. android的toogleButton和switch的使用方法
  4. a(n+1) = f[a(n)] 型递推数列的迭代作图(玩计算器玩出了问题)
  5. 恶意软件利用合法的代码签名证书横行Windows 系统
  6. SonicWall 督促客户立即修复NSM 本地版本漏洞
  7. Zerodium 称 iOS exploit 过剩,将暂停收购且买价或下跌
  8. SQLMETAL :Linq对象生成
  9. 调查显示存储虚拟化技术尚需3到5年才能成熟
  10. linux Apache启动提示 httpd: apr_sockaddr_info_get() failed f