我有一個包含 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
輸出是主字典中的每個鍵都具有相同的值。我需要每個鍵一個不同的值(串列中的不同字典)。
uj5u.com熱心網友回復:
您可以使用串列理解和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))
uj5u.com熱心網友回復:
這是因為你在這里的第二個回圈
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
可以有多種方法來做到這一點。上面的代碼是其中一種方式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/361964.html
