2 回答

TA贡献1797条经验 获得超4个赞
您可以创建一个tagtovalue字典old_list并new_list相应地更新项目:
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贡献1818条经验 获得超11个赞
使用包含字典理解的列表理解,并使用条件:
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 循环,然后使用带有值条件的字典理解,并在可能的情况下获取 的值old_list
。
添加回答
举报