簡體   English   中英

如果字典在另一個字典中,則更改字典的值

[英]Change value of dictionary if it is in another dictionary

我有兩個生成的字典列表。 一個就像一個結構如下的模板:

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]

但如果它在 arrays 中,我就完全迷路了。

您可以使用以下代碼:

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中的元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM