我是一名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->5
或 5->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/