2 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以創(chuàng)建一個(gè)tagtovalue字典old_list并new_list相應(yīng)地更新項(xiàng)目:
old_list = [{"tag": "apple","value":4}, {"tag": "orange","value":5}]
new_list = [{"tag": "apple","value":1}, {"tag": "orange","value":2}, {"tag": "grape","value":3}]
# create a dictionary from old_list
old_tags = {i['tag']: i['value'] for i in old_list}
# update new_list with old_list values if present
for item in new_list:
item['value'] = old_tags.get(item['tag'], 0)
print(new_list)
輸出
[{'tag': 'apple', 'value': 4}, {'tag': 'orange', 'value': 5}, {'tag': 'grape', 'value': 0}]

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
使用包含字典理解的列表理解,并使用條件:
print([{k:(next(iter(old_list[idx:idx+1]),{}).get(k,0) if k=='value' else v) for k,v in i.items()} for idx,i in enumerate(new_list)])
enumerate
首先使用then 循環(huán),然后使用帶有值條件的字典理解,并在可能的情況下獲取 的值old_list
。
添加回答
舉報(bào)