python - 理解字典赋值与元组和列表

标签 python python-3.x

我是一名python初学者,最近学习了字典赋值。 这是我正在尝试的

my_list = [[1, 4], [2, 2],[5,1]]
lists = dict(my_list)
print(lists)   # Prints {1:4,2:2,5:1}

my_list = [(1, 4), (2, 2),(5,1)]
lists = dict(my_list)
print(lists)   # Prints {1:4,2:2,5:1}

my_list = [[1, 4], (2, 2),{5,1}]
lists = dict(my_list)
print(lists)   # Prints {1:5,2:2}

我无法解释为什么我们会在示例 3 中得到这个奇怪的答案。 请帮助和解释。

最佳答案

{5, 1} 是一个集合,因此本质上是无序的。它在某种程度上取决于您的 Python 实现,不可预测地迭代为 1->55->1。如果您遇到第一种情况,您的 dict 实例化等同于:

lists = dict([(1, 4), (2, 2), (1, 5)])

或者,更冗长和明显

lists = {}
lists[1] = 4
lists[2] = 2
lists[1] = 5  # overrides first binding of 1

由于 dict 中不能有重复键,因此重复键的最后一个键绑定(bind)“获胜”。

关于python - 理解字典赋值与元组和列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53924141/

相关文章:

python - 在 Python 中基于地类网格求和土地面积网格

python - Django - 模板中的条件渲染

python - 将数组添加到 numpy 数组

python - SIGINT 对脚本没有影响

python - 正确理解 pexpect 的异步

python-3.x - Selenium “Unable to find a matching set of capabilities” 尽管驱动程序位于/usr/local/bin

python - 在不同的文件中加载 pickle 对象 - 属性错误

python - 何时断开与 mongodb 的连接

python - 我需要创建一个字典来计算名称在列表中出现的次数

python - “类型”对象在函数定义时不可订阅