【发布时间】:2022-04-14 01:04:11
【问题描述】:
我正在尝试从以下列表中删除重复项:
distinct_cur = [
{'rtc': 0, 'vf': 0, 'mtc': 0, 'doc': 'good job', 'foc': 195, 'st': 0.0, 'htc': 2, '_id': ObjectId('58e86a550a0aeff4e14ca6bb'), 'ftc': 0},
{'rtc': 0, 'vf': 0, 'mtc': 0, 'doc': 'good job', 'foc': 454, 'st': 0.8, 'htc': 1, '_id': ObjectId('58e8d03958ae6d179c2b4413'), 'ftc': 1},
{'rtc': 0, 'vf': 2, 'mtc': 1, 'doc': 'test', 'foc': 45, 'st': 0.8, 'htc': 12, '_id': ObjectId('58e8d03958ae6d180c2b4446'), 'ftc': 0}
]
基于条件的字典,如果“doc”键值文本相同,则应删除其中一个字典。我尝试了以下解决方案:
distinct_cur = [dict(y) for y in set(tuple(x.items()) for x in cur)]
但最终列表中仍然存在重复项。
以下是所需的输出,如第一个和第二个 distinct_cur 键值相同的文本(干得好):
[
{'rtc': 0, 'vf': 0, 'mtc': 0, 'doc': 'good job', 'foc': 195, 'st': 0.0, 'htc': 2, '_id': ObjectId('58e86a550a0aeff4e14ca6bb'), 'ftc': 0},
{'rtc': 0, 'vf': 2, 'mtc': 1, 'doc': 'test', 'foc': 45, 'st': 0.8, 'htc': 12, '_id': ObjectId('58e8d03958ae6d180c2b4446'), 'ftc': 0}
]
【问题讨论】:
-
如果你能提供一个示例输出会更好。
-
你不能在字典中使用重复的键。删除重复键是什么意思?应该删除什么?
-
那么在找到具有相同
doc键的字典后,您如何决定应该删除哪一个?
标签: python