我有两个词典列表:
list_1 = [
{'total': 18, 'lead_status': '2'},
{'total': 18, 'lead_status': '9'},
{'total': 18, 'lead_status': '8'},
{'total': 16, 'lead_status': '15'},
{'total': 17, 'lead_status': '14'}
]
list_2 = [
{'total': 18, 'lead_status': '2'},
{'total': 22, 'lead_status': '9'},
{'total': 18, 'lead_status': '8'},
{'total': 16, 'lead_status': '15'},
{'total': 17, 'lead_status': '14'}
]
lead_status
始终具有唯一值,列表中字典的顺序可能相同也可能不同。
我想检查每个lead_status
total
值在两个列表中是否相同
示例
对于lead_status : '2'
,两个列表都有相同的total
,即18,然后返回True
对于lead_status : '9'
,这两个列表都有不同的total
,list_1
为18,list_2
为22。所以它返回False
。
我在此解决方案中尝试了答案:Comparing 2 lists consisting of dictionaries with unique keys in python
请帮忙解决这个问题。任何帮助表示赞赏。
答案 0 :(得分:1)
根据我对你的问题的理解,这应该有效:
In [25]: dict_1 = {l['lead_status']:l['total'] for l in list_1}
In [26]: dict_2 = {l['lead_status']:l['total'] for l in list_2}
In [28]: {k: (dict_2[k] == v) for k, v in dict_1.items()}
Out[28]: {'14': True, '15': True, '2': True, '8': True, '9': False}
首先创建一个等于值lead_status
的密钥的dict和total的值,然后比较从这两个列表创建的dict。
但是,如果你的'lead_status'键的值与被覆盖的值相同。