python - 相同的键是否在 Python 的字典中相互覆盖?

标签 python dictionary key

键在字典中必须是唯一的,但我输入了以下赋值语句并且它起作用了:

test = {'A1': 12, 'A1': 13, 'A1': 14}

然后测试了一下,发现

test['A1']
14

我的问题是:具有相同键重复多次的字典在调用时会选择该键最后出现的实例吗? (即条目是否相互覆盖)

最佳答案

在Python中,Dictionary的存储是很有趣的。内部字典是使用哈希表实现的。因此,当您初始化字典时,这些是在后台发生的以下步骤:

  • 在内部调用 PyDict_New()。
  • 分配新对象
  • 获取可用插槽的几个步骤
  • 在添加新的键/值对时,它首先搜索键的现有散列。如果找到,则使用相同的散列。因此,如果您搜索重复键,它会获取最新的键。

Python 字典实现的很好解释 http://www.laurentluce.com/posts/python-dictionary-implementation/

关于python - 相同的键是否在 Python 的字典中相互覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34503527/

相关文章:

python - 按行索引 NumPy 数组

dictionary - Realm中的HashMap序列化(移动数据库)

Python 列表变成字典?

IOS: [NSDictionary initWithObjects:forKeys:]:

javascript - 创建以变量名作为键的 Javascript 对象

python - 在 boost::odeint 中指定插值时间

python - 使用 while 循环从字符串中一次打印一个字符

python - 如何测试范围的等价性

python - 以功能方式转换元组列表

python - 获取内部字典中的至少三个值(Python 3.4)