Python 字典间的比较为什么要set()转化为集合

问题

我想比较两个字典键是否具有相同的条目,然后google了一下,发现很多方法都是将字典转化为集合。为什么呢?


创建一个字典


std_chron = {
'Cs':0.188,
'Tl':0.14,
'Rb':2.32,
'Ba':2.41,
'W':0.095
}

转化为集合


jihe = set(std_chron)

print(std_chron)
print(jiehe)

两者对比:


{'Cs': 0.188, 'Tl': 0.14, 'Rb': 2.32, 'Ba': 2.41, 'W': 0.095}
{'W', 'Cs', 'Ba', 'Rb', 'Tl'}

可见,转化为集合后,只保留了字典std_chron的键,而值的部分被忽略了,因此,在两个字典作对比的时候,实际上是用它们的键作对比。

如果不要求两个字典中严格的键-值都相等,那么这种方法是可行的。


keys()方法

实际上,set(std_chron)std_chron.keys()是等价的:


jian = std_chron.keys()
print(jian)

# 结果:
dict_keys(['Cs', 'Tl', 'Rb', 'Ba', 'W'])

据说, 在python3中keys()可以用作集合。






公众号

关注公众号,获取一手资讯

“ Python 字典间的比较为什么要set()转化为集合 ” comments 0

评论/回复

电子邮件地址不会被公开。 必填项已用*标注