【问题标题】:Compare two List of Dictionaries [closed]比较两个字典列表[关闭]
【发布时间】:2017-12-14 18:51:54
【问题描述】:

我有两个字典列表:

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

请帮助解决这个问题。任何帮助表示赞赏。

【问题讨论】:

  • 我不明白想要的输出是什么,有趣的是会返回一个布尔值列表吗? total:boolean?
  • 期望的 o/p 可以是布尔值。因为我正在检查每个lead_status 的total 在两个列表中是否相同
  • [list_1[idx]['total'] == list_2[idx]['total'] for idx in range(len(list_1))] 为什么这不起作用?
  • 两个列表是否总是以相同的“lead_status”升序排序?这些列表的大小会一直相同吗?
  • 另外,你这样做是为了什么?

标签: python python-3.x list dictionary


【解决方案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 和总值的键字典,然后比较从两个列表创建的字典。

不过,如果您的“lead_status”键的值与被覆盖的值相同。

【讨论】:

  • 这正是我想要的......你明白了......所以你能帮我编辑这个问题吗?这样更多-ve投票的机会就会减少
  • lead_status 键在我的情况下将是唯一的...谢谢... :)
  • @ShubhamSrivastava 很高兴,它有帮助:) 我已经编辑了您的问题以显示how to ask a good question on stackoverflow 的示例。总是,展示你尝试过的东西。将代码中最少但所有必需的部分与任何堆栈跟踪一起粘贴。这有助于社区回答问题。
  • 谢谢。下次我会更清楚。 :)
猜你喜欢
  • 2017-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-23
  • 1970-01-01
  • 1970-01-01
  • 2019-01-30
  • 1970-01-01
相关资源
最近更新 更多