1、集合类型定义
(1)、集合是多个元素的无序组合
- 集合类型与数学中的集合概念一致
- 集合元素之间无序,每个元素唯一,不存在相同元素
- 集合元素不可更改,不能是可变数据类型
- 集合用大括号 {} 表示,元素间用逗号分隔- 建立集合类型用 {} 或 set()
- 建立空集合类型,必须使用set()
>>> A = {"python", 123, ("python",123)} #使用{}建立集合 {123, 'python', ('python', 123)} >>> B = set("pypy123") #使用set()建立集合 {'1', 'p', '2', '3', 'y'} >>> C = {"python", 123, "python",123} {'python', 123}
2、集合操作符
(1)、集合间操作
(2)、集合操作符
a. 6个操作符
操作符及应用 | 描述 |
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的包含关系 |
b. 4个增强操作符
操作符及应用 | 描述 |
S |= T | 更新集合S,包括在集合S和T中的所有元素 |
S -= T | 更新集合S,包括在集合S但不在T中的元素 |
S &= T | 更新集合S,包括同时在集合S和T中的元素 |
S ^= T | 更新集合S,包括集合S和T中的非相同元素 |
实例:
3、集合处理方法
(1)、操作函数或方法
操作函数或方法 | 描述 |
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转变为集合类型 |
(2)、两种遍历方法
>>> A = {"p", "y" , 123} >>> for item in A: print(item, end="") p123y >>> A {'p', 123, 'y'} >>> try: while True: print(A.pop(), end="")) except: pass p123y >>> A set()4、集合应用场景
(1)、包含关系比较
(2)、数据去重