我在Python的官方文档中阅读了
最好将字典视为一组键:值对,要求键是唯一的(在一个字典中)。
但是当我运行这段代码时
dic={"a":1,"b":2,"a":3,"a":2,"a":4,"a":5}
print(dic["a"])
我总是得到5作为输出。我想知道为什么。
答案 0 :(得分:1)
如果您有字典文字(在{}
之内)并且键多次出现,则最后一个“覆盖”先前的键。这只是在Python的第一个版本中做出的决定。
打印整个字典以查看:
>>> dic={"a":1,"b":2,"a":3,"a":2,"a":4,"a":5}
>>> dic
{'a': 5, 'b': 2}
请参见the docs,重点是我的:
如果给出了逗号分隔的键/基准对序列,则它们是 从左到右求值以定义字典的条目: 每个键对象都用作字典中的键来存储 相应的基准。 这意味着您可以指定相同的键 键/基准列表中的多次,以及最终词典的值 该密钥将是给出的最后一个密钥。
答案 1 :(得分:0)
您刚刚在文档中引用了它-密钥是唯一的,因此“ a”会不断被重新分配-并且仅保留最后一个值-您的情况是5