У меня есть два списка, которые
old_list = [{"tag": "apple","value":4}, {"tag": "orange","value":5}]
new_list = [{"tag": "apple","value":1}, {"tag": "orange","value":2}, {"tag": "grape","value":3}]
Я хочу new_list
, который, если new_list's item['tag']
равен old_list's item['tag']
, new_list['value']
равен old_list['value']
, если new_list имеет новый элемент,
затем new_list['value']
инициализируйте 0.
, в результате чего:
new_list = [{"tag": "apple","value":4}, {"tag": "orange","value":5}, {"tag": "grape","value":0}]
вот мой инструмент:
old_list = [{"tag": "apple","value":4}, {"tag": "orange","value":5}]
new_list = [{"tag": "apple","value":1}, {"tag": "orange","value":2}, {"tag": "grape","value":3}]
update_list = []
for new in new_list:
flag_new_item = True
for old in old_list:
if new["tag"] == old['tag']:
new["value"] = old['value']
flag_new_item = False
break
if flag_new_item:
new['value'] = 0
print(new_list)
, так как я использую 2'timesитератор для реализации задачи, которая, я думаю, слишком медленная и не в стиле Python, плюс я ввел новый флаг, который выглядит не очень хорошо.есть ли более направленный, удобный, эффективный способ его реализации