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