Python集合

38次阅读
没有评论

共计 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

正文完
post-qrcode
 0
三毛
版权声明:本站原创文章,由 三毛 于2023-08-14发表,共计954字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)