当我在 Python shell 中输入表达式 {1: 'a', True: 'b', 1.0: 'c', 1.00: 'd'} 时,我返回 {1: 'd'}。但是当我写 {1: 'a', True: 'b', 1.0: 'c', 1.00: 'd'} [True] 时,解释器返回给我 'd' 。我不明白这个字典评估是如何工作的。
请您参考如下方法:
Python 使用与 == 运算符相同的相等性测试。您使用的所有键(1、True、1.0 和 1.00)比较等于彼此。你的字典发生的事情是它保留第一个键,然后更新与该键关联的所有后续键的值,这些键比较等于它。这有点不直观,因为键值不相同(1.0 和 1.00 除外),但它们“相等”。
同样,{1: 'd'}[True] 的计算结果为 'd',因为 True == 1。
