Python 集合类型 Set
作者:PHPYuan 时间:2018-06-18 23:39:10
Set 是一个无序的集合类型。它可以遍历,修改,没有重复的元素。支持数学集合的一些操作,例如交集,并集,差集,补集。
创建集合
使用花括号 {} 或者 set() 函数创建集合。注意,创建一个空的集合只能用 set(),因为 {} 创建的是一个空字典。
创建了一个 basket 集合,可以发现,里面相同的元素不会重复出现,最终 basket 只有4个元素。
可以用 e in s 判断元素 e 是否存在集合 s 中。
set() 函数创建集合:
集合的操作
add(x) 方法,如果元素 x 不存在集合中,则添加。这个函数修改了原来的集合。
union(s) 方法,计算并集,也可以用 | 操作符。它不会修改原来的集合,而是返回新的集合。
intersection(s) 方法,计算交集,也可以用 & 操作符。它不会修改原来的集合,而是返回新的集合。
difference(s) 方法,计算差集,也可以用 - 操作符。它不会修改原来的集合,而是返回新的集合。
clear() 方法,清空集合。
symmetric_difference(s) 方法,也可以用 ^ 操作符。返回不同时在两个集合的元素。它不会修改原来的集合,而是返回新的集合。
update(s) 方法,更新集合。会修改原来的集合。
union(s)、intersection(s)、difference(s)、symmetric_difference(s) 都不会修改原来的集合。如果你想要修改原来的集合,需要用另外4个方法 update、intersection_update、difference_update、symmetric_difference_update。
issubset(s) 方法,判断是否是另一个集合的子集。也可以用操作符 <=
集合 a 里面的元素都在集合 b 存在,所以 a 是 b 的子集。
issuperset(s) 方法,判断是否是另一个集合的超集。也可以用操作符 >=。
可以用 for e in s 语法迭代集合。
frozenset
还有一个集合用 frozenset() 函数声明,它是不可更改的,一旦声明,就不可以修改了。
它和普通集合有一些共同的操作,例如:
key in s # 判断 key 是否存在集合中
key not in s # 判断 key 不在集合中
s1 == s2 # s1 和 s2 是否相等
s1 != s2 # s1 和 s2 不等
s1 <= s2 # s1 是 s2 的子集
s1 < s2 # s1 是 s2 的真子集
s1 >= s2 # s1 是 s2 的超集
s1 > s2 # s1 是 s2 的超集,两者不可以相等
s1 | s2 # 并集
s1 & s2 # 交集
s1 – s2 # 差集
s1 ˆ s2 # 不同在 s1 和 s2 中的元素
分享到:
<< 上一篇:Python 迭代器 Iterators (2018-06-18 23:39)
>> 下一篇:使用命名元组编写简洁的Python代码 (2018-06-18 23:39)