– Start
点击此处观看本系列配套视频。
什么是集合?
同列表类似,集合用来存储一系列的值,但是它不允许有重复值,也不保证先后顺序,所以我们不能根据索引访问集合。
Python 支持两种类型的集合 set 与 frozenset,它们的区别是 set 是可变的,frozenset 不可变。
如何构造集合?
a = {1, 2, 3, 4, 5}
b = set({1, 2, 3, 4, 5})
c = set([1, 2, 3, 4, 5]) # 列表转为集合
d = set((1, 2, 3, 4, 5)) # 元组转为集合
e = set('abcd') # 字符串转为集合
f = set({'one':1}.keys()) # 字典转为集合
g = f.copy() # 复制集合
h = set() # 空集合,{} 是空字典
i = {x for x in range(5)} # 集合推导
集合操作符
s = {1, 2, 3, 4, 5}
# 判断元素是否存在
1 in s
1 not in s
集合方法
s = {1, 2, 3, 4, 5}
s.add(6) # 增加方法
len(s) # 查看集合长度
s.remove(6) # 删除,不存在抛异常
s.discard(7) # 删除
i = s.pop() # 删除并返回
s.clear() # 删除所有
del s # 删除对象
集合操作
#----------------- 并集: {1, 2, 3}
s = {1, 2}
t = {2, 3}
# s 与 t 的并集
s.update(t)
s |= t
#返回 s 与 t 的并集
stu = s.union(t)
stu = s | t
#----------------- 交集: {2}
s = {1, 2}
t = {2, 3}
# s 与 t 的交集
s.intersection_update(t)
s &= t
# 返回 s 与 t 的交集
sti = s.intersection(t)
sti = s & t
#----------------- 对称差(非交集元素): {1, 3}
s = {1, 2}
t = {2, 3}
# 交集元素
#s.symmetric_difference_update(t)
#s ^= t
# 返回非交集元素
sty = s.symmetric_difference(t)
sty = s ^ t
#----------------- 差集: {1}
# 在 s 中,但不在 t 中的元素
s.difference_update(t)
s -= t
# 返回在 s 中,但不在 t 中的元素
std = s.difference(t)
std = s - t
#----------------- 判断
s = {1, 2}
t = {2, 3}
# s 与 t 是否没有交集
s.isdisjoint(t)
# s 是否是 t 的子集
s.issubset(t)
s <= t
s < t
# s 是否是 t 的父集
s.issuperset(t)
s >= t
s > t
迭代集合
s = set(range(5))
for value in s:
print(value)
– 更多参见:Python 精萃
– 声 明:转载请注明出处
– Last Updated on 2018-09-08
– Written by ShangBo on 2018-08-19
– End