繁体   English   中英

将字典值从 python 中的字典列表更改为字典

[英]change dictionary values to dictionaries from list of dictionaries in python

我有一个包含 12 个字典的列表,以及包含 12 个键的主字典。 对于主字典中的每个键,我想从我拥有的字典列表中将值更改为字典。 我已经尝试过了,但它不起作用:

values = []

for lst in href_lst:
    val = dict(Counter(lst))
    values.append(val)

for key in traffic_dict:
    for dict in values:
        traffic_dict[key] = dict

output 是主字典中的每个键都有相同的值。 我需要为每个键提供不同的值(列表中的不同字典)。

这是因为你的第二个循环在这里

for key in traffic_dict:
    for dict in values:
        traffic_dict[key] = dict

即使在分配值之后也正在运行。 这会将列表“值”中的最后一个值分配给每个“键”。

更正的代码示例,

i = 0
for key in traffic_dict:
    traffic_dict[key] = values[i]
    i += 1

可以有多种方法来做到这一点。 上面的代码就是其中一种方式。

您可以使用列表理解zip

values = [dict(Counter(lst)) for lst in href_lst]
for key, value in zip(traffic_dict, values):
    traffic_dict[key] = value

或者,如果您以后不需要values ,只需zip

for key, lst in zip(traffic_dict, href_lst):
    traffic_dict[key] = dict(Counter(lst))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM