【发布时间】:2021-12-10 06:29:01
【问题描述】:
我有值列表:
list = [value1, value2, value3]
还有一个字典列表,我必须在特定键上设置相应的值:
dictionaries = [{"key1":{"key2":{"key3":position_value1}}},{"key1":{"key2":{"key3":position_value2}}}]
我正在尝试分配值以避免需要对列表和字典的数字索引进行显式迭代的解决方案。
我发现下一个伪解决方案使用 for-each 循环同时迭代两个可迭代对象
for (dict, value) in zip(dictionaries, list):
dict['key1']['key2']['key3'] = value
print(dictionaries)
但是由于不起作用,所有字典只取值列表的最后一个值,获得下一个结果:
[{"key1":{"key2":{"key3":position_value3}}},{"key1":{"key2":{"key3":position_value3}}}]
需要注意的是,在创建字典列表时使用了 dict.copy() 方法,但这可能不会影响嵌套字典中分配的引用。
字典列表创建
base_dict = {"key1": {"key2":{"key3": None}}}
dictionaries = [base_dict.copy() for n in range(3)]
我很欣赏任何紧凑的解决方案,甚至是基于解包的解决方案。
【问题讨论】:
-
显示您如何创建字典列表的代码。
标签: python-3.x list dictionary reference variable-assignment