如果字典中的值重复,则删除列表中的字典

时间:2019-03-04 19:20:45

标签: python arrays python-3.x

好的,所以,我有这样的东西:

[ 
  { "abc": "123",
    "id": 9,
  },
  { "azc": "153",
    "id": 2,
  },
  { "oau": "321",
    "id": 9,
  },
]

正如您在上面看到的,可能会发生ID在我拥有的文件中重复的情况,但是,我希望如果ID在这些列表中的两个中重复,则其中一个列表将被删除,而另一个保持。

有可能吗?我已经尝试了太久了。

1 个答案:

答案 0 :(得分:0)

您可以使用dict理解以列表中每个子字典的id键为键,子字典为值的方式构建一个dict,这样重复的条目将被后者覆盖值(假设您的字典列表存储在变量l中)

list({d['id']: d for d in l}.values())

这将返回:

[{'oau': '321', 'id': 9}, {'azc': '153', 'id': 2}]