繁体   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