set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。set不保证有序。不可以放入可变对象(例如list)作为key,因为可变对象无法判断相等。
要创建一个set,需要提供一个list作为输入集合
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}
或者,直接创建
>>> s = {1, 2, 3}
>>> s
{1, 2, 3}
>>> s = {1, 1, 2, 2, 3, 3}
>>> s
{1, 2, 3}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
# 重复添加不会有效果
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s = {1, 2, 3, 4}
>>> s.remove(4)
>>> s
{1, 2, 3}
删除不存在元素会报KeyError
错误
>>> x={1,2,3,4}
>>> y={3,4,5,6}
>>> x&y
{3, 4}
# 或
>>> x.intersection(y)
{3, 4}
>>> x={1,2,3,4}
>>> y={3,4,5,6}
>>> x | y
{1, 2, 3, 4, 5, 6}
# 或
>>> x.union(y)
{1, 2, 3, 4, 5, 6}
>>> x={1,2,3,4}
>>> y={3,4,5,6}
# x与y的差集
>>> x-y
{1, 2}
# 或
>>> x.difference(y)
{1, 2}
# y与x的差集
>>> y-x
{5, 6}
# 或
>>> y.difference(x)
{5, 6}
对称差集就是,有集合a与集合b,a与b的差集跟b与a的差集的并集为对称差集。通俗的说就是[a中存在b中不存在的元素]与[b中存在a中不存在的元素]合起来组成的集合,也就是把ab中相同元素去掉,余下的元素所组成的集合。其实,就是两个集合进行异或操作(相同丢弃,不同保留)。
>>> x={1,2,3,4}
>>> y={3,4,5,6}
>>> x^y
{1, 2, 5, 6}
>>> y^x
{1, 2, 5, 6}
>>> x.symmetric_difference(y)
{1, 2, 5, 6}
>>> y.symmetric_difference(x)
{1, 2, 5, 6}
>>> x
set([1, 2, 3, 4])
>>> z
set([1, 2, 3])
>>> z.issubset(x) # z是x的子集
True
>>> x.issuperset(z) # x是z的超集
True
更多文章:vien.我爱你
viencoding.com版权所有,允许转载,但转载请注明出处和原文链接: https://viencoding.com/article/77