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