首页 >后端开发 >Python教程 >如何有效地从Python列表中删除重复的字典?

如何有效地从Python列表中删除重复的字典?

Linda Hamilton
Linda Hamilton原创
2024-11-01 11:29:02228浏览

How to Efficiently Remove Duplicate Dictionaries from a Python List?

Python 列表中的独特字典

字典列表在 Python 应用程序中很常见。然而,管理重复的字典可能具有挑战性。本文讨论如何有效地删除重复项并获取唯一字典列表。

考虑一个字典列表:

<code class="python">L = [
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 2, 'name': 'hanna', 'age': 30}
]</code>

解决问题

要对字典列表进行重复数据删除,一种简单的方法是迭代列表并将每个字典与其他字典进行比较。但是,对于大型列表,此过程的计算成本可能会很高。

使用临时字典

更有效的解决方案利用临时字典来处理重复数据删除。字典的键设置为每个字典的 id 字段,值设置为字典本身。此操作有效地过滤掉重复项,因为每个唯一 id 只对应一个字典条目。

检索唯一字典

填充临时字典后,值(其中代表唯一的字典)可以使用values()方法检索。

Python实现

Python 2.7:

<code class="python">{v['id']:v for v in L}.values()</code>

Python 3:

<code class="python">list({v['id']:v for v in L}.values())</code>

Python 2.5/2.6:

<code class="python">dict((v['id'],v) for v in L).values()</code>

这些简洁的解决方案产生了一系列独特的解决方案字典:

<code class="python">[
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 2, 'name': 'hanna', 'age': 30}
]</code>

这种方法通过利用临时字典来识别和提取唯一的字典值,从而有效地删除重复项。

以上是如何有效地从Python列表中删除重复的字典?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn