有一个字典列表,我想删除具有相同键和值对的字典。
对于此列表: [{'a': 123}, {'b': 123}, {'a': 123}]
我想退掉这个: [{'a': 123}, {'b': 123}]
另一个例子:
对于此列表: [{'a': 123, 'b': 1234}, {'a': 3222, 'b': 1234}, {'a': 123, 'b': 1234}]
我想退掉这个: [{'a': 123, 'b': 1234}, {'a': 3222, 'b': 1234}]
尝试这个:
[dict(t) for t in {tuple(d.items()) for d in l}]
该策略是将字典列表转换为元组列表,其中元组包含字典项。由于可以对元组进行散列,因此你可以使用删除重复项set(在这里使用set comprehension
,这将是更老的python替代品set(tuple(d.items()) for d in l))
,然后,使用来从元组中重新创建字典dict。
哪里:
编辑:如果要保留订单,则上面的单行将不起作用,因为set不会这样做。但是,通过几行代码,你也可以做到这一点:
l = [{'a': 123, 'b': 1234},
{'a': 3222, 'b': 1234},
{'a': 123, 'b': 1234}]
seen = set()
new_l = []
for d in l:
t = tuple(d.items())
if t not in seen:
seen.add(t)
new_l.append(d)
print new_l
输出示例:
[{'a': 123, 'b': 1234}, {'a': 3222, 'b': 1234}]
注意:正如@alexis指出的那样,两个具有相同键和值的字典可能不会产生相同的元组。如果他们经历了不同的添加/删除密钥历史记录,则可能会发生这种情况。如果是你的问题,请考虑d.items()按照他的建议进行排序。
问题内容: 如果想基于每个嵌套列表的第一个元素评估重复项,谁能提出一个好的解决方案从嵌套列表中删除重复项? 主列表如下所示: 如果已经在第一位置出现了另一个具有相同元素的列表,那么我想删除该列表并得到以下结果: 您可以建议一种算法来实现此目标吗? 问题答案: 您是否关心保留订单/删除了哪些重复项?如果不是,则: 会做的。如果您想保留订单并想保留第一个订单,则:
问题内容: 我在Python中有一个列表列表: 我想从中删除重复的元素。如果这是正常列表,而不是我可以使用的列表set。但不幸的是,该列表不可散列,因此无法建立一组列表。只有元组。因此,我可以将所有列表转换为元组,然后使用set并返回列表。但这不是很快。 如何以最有效的方式做到这一点? 上面的结果应为: 我不在乎保留订单。 注意:这个问题很相似,但不是我所需要的。搜索了SO,但没有找到确切的重复项
问题内容: 我想从列表列表中删除所有重复列表。 所以我有一个这样的清单清单。 我希望有: 我不知道该怎么办。 谢谢 问题答案: 您可以使用一组: 或者,如果您更喜欢列表推导/生成器: 最后,如果顺序很重要,则可以始终对b进行排序:
问题内容: 如果嵌套字典前面没有键,我现在可以删除重复项。我可以使用此功能的字典列表的一个示例是: 但是,我希望能够根据键和该词典中关联的所有值删除重复项。因此,如果内部有相同的键但值不同,则我不想删除它,但是如果有完整的副本,则将其删除。 我该怎么做呢?谢谢。 问题答案: 要从字典列表中删除重复项,请执行以下操作:
问题内容: 从数据框中删除重复列的最简单方法是什么? 我正在通过以下方式读取具有重复列的文本文件: 列名是: 所有“时间”和“相对时间”列均包含相同的数据。我想要: 我所有的删除,删除等尝试,例如: 导致唯一值索引错误: 很抱歉成为熊猫的菜鸟。任何建议,将不胜感激。 额外细节 熊猫版本:0.9.0 Python版本:2.7.3 Windows 7 (通过Pythonxy 2.7.3.0安装) 数据
本文向大家介绍python删除列表中重复记录的方法,包括了python删除列表中重复记录的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python删除列表中重复记录的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。