问题描述
所述hash
的3个项目的1,
1.0, True
是相同的(它等于1
)。如果没有冲突,这就是python用作字典键的原因。而且1 == 1.0 ==
True
也True
没有碰撞。
这里是有关python字典的旧实现的更多详细信息。新的实现按照这些原则行事(但保留顺序)。
解决方法
谁能解释python字典的这种行为?
d = {}
d[True] = 'Magic'
d[1] = 'Cool'
d[1.0] = 'Hello'
print(d)
# {True: 'Hello'}
为什么不打印所有其他(键,值)对?
为什么将True,1和1.0评估为相同?