如果字典在其他字典中,则更改字典的值



我有两个生成的字典列表。一个是模板,结构如下:

list_of_dicts_template = [{'year': 0, 'week': 38, 'count_tickets': 0}, {'year': 0, 'week': 39, 'count_tickets': 0}]...

另一个是字典,它的值是我们知道的:known_values_list = [{'year': 2022, 'week': 39, 'tickets': 47}, {'year': 2022, 'week': 40, 'tickets': 3}]...我的问题是,我想把它们混合在一个字典列表中。如果键'week'的值在字典列表known_values_list,它将替换list_of_dicts_template中的整个字典.

所以期望的字典列表是这样的:final_list = [{'year': 0, 'week': 38, 'count_tickets': 0}, {'year': 2022, 'week': 39, 'count_tickets': 47}, {'year': 2022, 'week': 40, 'tickets': 3}]...'

我实际上不知道如何处理这个问题。如果我只有没有数组的字典,我会这样做:
for sub in dicts_template:
if(sub in known_values):
dicts_template[sub] = known_values[sub]

但是如果它是在数组中,我就完全迷路了

您可以使用以下代码:

for i,d1 in enumerate(list_of_dicts_template):
for j, known_value_d in enumerate(known_values_list):
if known_value_d['week'] == d1['week']:
list_of_dicts_template[i] = known_value_d
del known_values_list[j]

如果list_of_dicts_template中不应该有重复的周,则只添加删除known_values_list中的元素。

相关内容

最新更新