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

时间:2020-03-02 11:18:21

标签: python-3.x list dictionary updates

未找到相关的重复项。

我需要更新一个长度为2的列表(嵌套列表)的字典。 我期望这会起作用,因为 Python文档说update()方法可能会收到一个字典或一个长度为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]))

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

1 个答案:

答案 0 :(得分:2)

您可以一次全部更新:

dict1.update(list1)

或解包

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

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