- 集合类型定义
- 集合操作符
- 集合处理方法
- 集合类型应用场景
集合是多个元素的无序组合
- 集合类型与数学中的集合概念一致
- 集合元素之间无序,每个元素唯一,不存在相同元素
- 集合元素不可更改,不能是可变数据类型
- 集合用大括号 {} 表示,元素间用逗号分隔
- 建立集合类型用 {} 或 set()
- 建立空集合类型,必须使用set()
| A = {"python", 123, ("python", 123)} |
| A |
| {('python', 123), 123, 'python'} |
| B = set("pypy123") |
| B |
| {'1', '2', '3', 'p', 'y'} |
| C = {"python", 123, "python", 123} |
| C |
| {123, 'python'} |
操作符及应用 |
描述 |
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中的非相同元素 |
| A = {"p", "y", 123} |
| B = set("pypy123") |
| A - B |
| {123} |
| A & B |
| {'p', 'y'} |
| A ^ B |
| {'1', 123, '2', '3'} |
| B - A |
| {'1', '2', '3'} |
| A | B |
| {'1', 123, '2', '3', 'p', 'y'} |
操作函数或方法 |
描述 |
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中,返回False,否则返回True |
set(x) |
将其他类型变量x转变为集合类型 |
| A = {"p", "y", 123} |
| for item in A: |
| print(item, end="") |
| 123yp |
| "p" in {"p", "y" , 123} |
| True |
| {"p", "y"} >= {"p", "y" , 123} |
| False |
| ls = ["p", "p", "y", "y", 123] |
| s = set(ls) |
| s |
| {123, 'p', 'y'} |
| lt = list(s) |
| lt |
| [123, 'y', 'p'] |
- 集合使用{}和set()函数创建
- 集合间操作:交(&)、并(|)、差(-)、补(^)、比较(>=<)
- 集合类型方法:.add()、.discard()、.pop()等
- 集合类型主要应用于:包含关系比较、数据去重