集合(set)的最大特征是其每个元素都是唯一的,它可以删除、可以增加、也可以通过增删实现替换元素,但是它是没有下标的,你无法通过下标或者切片功能访问集合。它最大的作用,就是它元素的唯一,它经常被用来清除多余的数据。
图片来源网络
推导生成一个集合
a = [1, 2, 5, 6, 6, 6, 7]
s = {x for x in a}
s
set([1, 2, 5, 6, 7])
s = {x for x in a if x > 3}
s
set([5, 6, 7])
s = {x if x > 3 else -1 for x in a}
s
set([6, 5, -1, 7])
将列表去重
a = [1, 2, 2, 2, 3, 4, 5, 5]
a
[1, 2, 2, 2, 3, 4, 5, 5]
ua = list(set(a))
ua
[1, 2, 3, 4, 5]
两个列表合并
a = set([1, 2, 2, 2, 3])
b = set([5, 5, 6, 6, 7])
a | b
set([1, 2, 3, 5, 6, 7])
# 或者
a = [1, 2, 2, 2, 3]
b = [5, 5, 6, 6, 7]
set(a + b)
set([1, 2, 3, 5, 6, 7])
向集合中添加元素
a = set([1, 2, 3, 3, 3])
a.add(5)
a
set([1, 2, 3, 5])
#或者
a = set([1, 2, 3, 3, 3])
a |= set([1, 2, 3, 4, 5, 6])
a
set([1, 2, 3, 4, 5, 6])
两个集合的交集
a = set([1, 2, 2, 2, 3])
b = set([1, 5, 5, 6, 6, 7])
a & b
set([1])
判断包含关系
a = set([1, 2])
b = set([1, 2, 5, 6])
a <= b
True
a = set([1, 2, 5, 6])
b = set([1, 5, 6])
a >= b
True
集合差运算
# 获取a中没有含在b里的元素
a = set([1, 2, 3])
b = set([1, 5, 6, 7, 7])
a - b
set([2, 3])
# 获取a和b中都没有的元素
a = set([1,2,3])
b = set([1, 5, 6, 7, 7])
a ^ b
set([2, 3, 5, 6, 7])
眼睛一看就废,还需动手实践哦