集合(set)
集合(set)
定义
Python中的集合跟数学上的集合是一致的,不允许有重复元素,而且可以进行交集、并集、差集等运算。
- 集合是多个元素的无序组合
- 集合类型与数学中的集合概念一致
- 集合元素之间无序,每个元素唯一,不存在相同元素
- 集合元素不可更改,不能是可变数据类型
- 集合用大括号 {} 表示,元素间用逗号分隔
- 建立集合类型用 {} 或 set()
- 建立空集合类型,必须使用set()
可以按照下面代码所示的方式来创建和使用集合。
1 | |
运算
| 名称 | 功能 |
|---|---|
| S / T 并 | 返回一个新集合,包括在集合S和T中的所有元素 |
| S - T 差 | 返回一个新集合,包括在集合S但不在T中的元素 |
| S & T 交 | 返回一个新集合,包括同时在集合S和T中的元素 |
| S ^ T 补 | 返回一个新集合,包括集合S和T中的非相同元素 |
| S <= T 或 S < T | 返回True/False,判断S和T的子集关系 |
| S >= T 或 S > T | 返回True/False,判断S和T的包含关系 |
| S / = T 并 | 更新集合S,包括在集合S和T中的所有元素 |
| S -= T 差 | 更新集合S,包括在集合S但不在T中的元素 |
| S &= T 交 | 更新集合S,包括同时在集合S和T中的元素 |
| S ^= T 补 | 更新集合S,包括集合S和T中的非相同元素 |
| S.add(x) | 如果x不在集合S中,将x增加到S |
| S.discard(x) | 移除S中元素x,如果x不在集合S中,不报错 |
| S.remove(x) | 移除S中元素x,如果x不在集合S中,产生KeyError异常 |
| S.clear() | 移除S中所有元素 |
| S.pop() | 随机移除并返回S的一个元素,更新S,若S为空产生KeyError异常 |
| S.copy() | 返回集合S的一个副本 |
| len(S) | 返回集合S的元素个数 |
| x in S | 判断S中元素x,x在集合S中,返回True,否则返回False |
| x not in S | 判断S中元素x,x不在集合S中,返回True,否则返回False |
| set(x) | 将其他类型变量x转变为集合类型 |
集合的成员、交集、并集、差集等运算。
1 | |
说明: Python中允许通过一些特殊的方法来为某种类型或数据结构自定义运算符(后面的章节中会讲到),上面的代码中我们对集合进行运算的时候可以调用集合对象的方法,也可以直接使用对应的运算符,例如
&运算符跟intersection方法的作用就是一样的,但是使用运算符让代码更加直观。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hongwei Zhao's Blog!




