共计 954 个字符,预计需要花费 3 分钟才能阅读完成。
集合存储原理
data = set()
data.add('a')
print(data) # 结果为:{'a'}
- 利用哈希函数将“a”转换成一个数值,例如:1280120246861766981
- 取余数:1280120246861766981 % 6 = 3
- 将“a”放在哈希表的 3 索引位置
添加元素
data = {'a', 'b', 'c'}
data.add('d')
print(data) # 结果为:{'a', 'b', 'c', 'd'}
update 加入一个新的集合:
data = {"a", "b", "c"}
data.update("d")
print(data) # 结果为:{'b', 'd', 'a', 'c'}
删除元素
data = {'a', 'b', 'c'}
data.discard('b')
print(data) # 结果为:{'a', 'c'}
交集
data = {'a', 'b', 'c'}
data2 = {'w', 'b', 'd'}
data3 = data & data2
print(data3) # 结果为:{'b'}
并集
data = {'a', 'b', 'c'}
data2 = {'w', 'b', 'd'}
data3 = data | data2
print(data3) # 结果为:{'w', 'b', 'c', 'd', 'a'}
差集
data = {'a', 'b', 'c'}
data2 = {'w', 'b', 'd'}
data3 = data - data2
print(data3) # 结果为:{'c', 'a'}
对称差集
并集减去交集。
novels_1 = {'飞狐外传', '雪山飞狐', '连城诀', '天龙八部'}
novels_2 = {'鹿鼎记', '天龙八部', '书剑恩仇录', '神雕侠侣'}
print(novels_1 ^ novels_2)
print(novels_2 ^ novels_1)
输出结果如下:
{'飞狐外传', '鹿鼎记', '连城诀', '雪山飞狐', '书剑恩仇录', '神雕侠侣'}
{'飞狐外传', '连城诀', '鹿鼎记', '雪山飞狐', '书剑恩仇录', '神雕侠侣'}
isdisjoint
判断两个集合是否包含相同的元素,如果没有返回 true,否则返回 false。
data = {"a", "b", "c"}
data2 = {"w", "b", "d"}
result = data.isdisjoint(data2)
print(result) # False
正文完