我是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中得到这个奇怪的答案。 请帮助和解释。
答案 0 :(得分:4)
{5, 1}
是set
,因此固有地无序。在某种程度上取决于您的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
中没有重复的密钥,因此重复密钥的最后一个密钥绑定“获胜”。