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中文网其他相关文章!