使用列表更新字典时出现 ValueError

ValueError when updating dictionary with list

未找到相关重复项。

我需要用长度为 2 的列表(嵌套列表)更新字典。 我预计这会起作用,因为 Python 文档 说 update () 方法可能会收到字典或 length 2 的可迭代对象 https://docs.python.org/3/library/stdtypes.html#dict.update

代码如下:

list1 = [['a', 12], ['b', 45], ['c', 7]]
dict1 = {}

#confirmation of length:
print(len(list1[0])) # prints 2

for i in list1:
    dict1.update(i)

print(dict1)

这是导致相同错误的另一个片段:

print(dict(list1[0]))

所以我的问题是为什么它不起作用?

您可以一次全部更新:

dict1.update(list1)

或解压

for key, val in list1:
    dict1.setdefault(key, val)

第一个选项不起作用,因为您正在尝试更新列表,第二个选项不起作用,因为您正在转换值列表而不是对列表。