簡體   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