有人可以解释python词典的这种行为吗?
d = {}
d[True] = 'Magic'
d[1] = 'Cool'
d[1.0] = 'Hello'
print(d)
# {True: 'Hello'}
为什么不打印所有其他(键,值)对?
为什么True,1和1.0被评估为相同?
答案 0 :(得分:3)
3个项目1, 1.0, True
中的hash
是相同的(等于1
)。如果没有冲突,这就是python用作字典键的方式。并且1 == 1.0 == True
也是True
,因此没有冲突。
这是有关python字典old implementation的更多详细信息。新的实现沿这些方向执行(但保留了顺序)。