Python set模块使用方法

来源:互联网 发布:焦土抗战 知乎 编辑:程序博客网 时间:2024/04/20 06:23
x=set('hello')  print x y=set('world')  print yprint x&y   # 交集print x|y   # 并集print x-y   # 差集print x^y   # 对称差集s = set('l')print s.issubset(x)  # 测试是否 s 中的每一个元素都在 t 中print s <= xprint x.issuperset(s)    # 测试是否 s 中的每一个元素都在 x 中print x >= sprint s.union(x)    # 返回一个新的 set 包含 s 和 x 中的每一个元素print s | xprint s.intersection(x)     # 返回一个新的 set 包含 s 和 t 中的公共元素print s & xprint set('ld').difference(x)   # 返回一个新的 set 包含 s 中有但是 t 中没有的元素print set('ld') - xprint s.symmetric_difference(x)     # 返回一个新的 set 包含 s 和 t 中不重复的元素print s ^ xprint id(s.copy())  # 回 set “s”的一个浅复制a = [11,22,33,44,11,22]print set(a)print [i for i in set(a)]   # 去除重复元素x = 'h'print x in "hello"  # 测试 x 是否是 hello 的成员print x in "world"  # 测试 x 是否不是 hello 的成员"""请注意:union,intersection(), difference() 和symmetric_difference()的运算符(就是形如s.union()这样的)版本将会接受任何 iterable 作为参数。相反,他们的运算符版本要求参数必须是sets,这样可以避免潜在的错误,如:为了更可读而使用set('abc') & 'cbs' 来替代 set('abc').intersection('abc')。从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 的列表没有定义。"""

原创粉丝点击