Python 集合类型 Set

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) 方法,判断是否是另一个集合的子集。也可以用操作符

=。

可以用 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 中的元素

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();