一、构建集合
集合是一种无序且元素唯一的容器。你可以认为集合也像字典,但是只有键没有值。集合可以有两种创建方式:通过set函数或者是用字面值集与大括号的语法:
set([1, 2, 2, 3, 3, 3]) # 结果:{1, 2, 3}
{1, 2, 2, 3, 3, 3} # 结果:{1, 2, 3}
二、操作集合
2.1 并集
使用union
方法或|
二元操作符完成:
a = set([1, 2, 3, 4])
b = set([3, 4, 5, 6])
a.union(b) # 结果:{1, 2, 3, 4, 5, 6}
a | b # 结果:{1, 2, 3, 4, 5, 6}
也可以求多个集合的并集:
a = set([1, 2, 3, 4])
b = set([3, 4, 5, 6])
c = set([5, 6, 7, 8])
a.union(b, c) # 结果:{1, 2, 3, 4, 5, 6, 7, 8}
a | b | c # 结果:{1, 2, 3, 4, 5, 6, 7, 8}
2.2 交集
使用&
操作符或intersection
方法获得交集:
a = set([1, 2, 3, 4])
b = set([3, 4, 5, 6])
a.intersection(b) # 结果:{3, 4}
a & b # 结果:{3, 4}
2.3 常用的集合方法
和字典类似,集合的元素必须是不可变的。如果想要包含列表型的元素,必须先转换为元组:
{[1, 2, 3]} # TypeError: unhashable type: 'list'
{tuple([1, 2, 3])} # 结果:{(1, 2, 3)}
可以检查一个集合是否是另一个集合的子集:
a = set([1, 2, 3, 4])
b = set([1, 2, 3])
b.issubset(a) # 结果:True
当且仅当两个集合的内容一模一样时,两个集合才相等:
{1, 2, 3} == {3, 2, 1} # 结果:True