簡體   English   中英

根據某些值比較兩個字典列表

[英]Compare two lists of dictionaries based on some values

我有兩個字典列表:

old_data = [{'company': 'Amazon', 'logged_in': '2019-01-20'},
            {'company': 'Facebook', 'logged_in': '2019-04-20'},
            {'company': 'Google', 'logged_in': '2019-04-20'}]

new_data = [{'company': 'Amazon', 'logged_in': '2019-01-26'},
            {'company': 'Facebook', 'logged_in': '2019-04-12'},
            {'company': 'LinkedIn', 'logged_in': '2019-04-20'}]

我想將 new_data 過濾為:

  1. 如果 old_data 和 new_data 中的公司名稱匹配,則僅當 new_data 中的登錄時間晚於 old_data 中時才選擇公司
  2. 如果公司名稱不匹配,則選擇該元素

預期結果:

[{'company': 'Amazon', 'logged_in': '2019-01-26'},
{'company': 'LinkedIn', 'logged_in': '2019-04-20'}]
filter_new_data = []
for old_dict, new_dict in zip(old_data, new_data):
    if new_dict['company'] not in [d['company'] for d in old_data]:
        filter_new_data.append(new_dict)
    elif new_dict['company'] == old_dict['company'] and new_dict['logged_in'] > old_dict['logged_in']:
        filter_new_data.append(new_dict)

暫無
暫無

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

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