使用列表更新字典时出现 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)
第一个选项不起作用,因为您正在尝试更新列表,第二个选项不起作用,因为您正在转换值列表而不是对列表。
未找到相关重复项。
我需要用长度为 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)
第一个选项不起作用,因为您正在尝试更新列表,第二个选项不起作用,因为您正在转换值列表而不是对列表。