Python 列表中的独特字典
字典列表在 Python 应用程序中很常见。然而,管理重复的字典可能具有挑战性。本文讨论如何有效地删除重复项并获取唯一字典列表。
考虑字典列表:
L = [
{'id': 1, 'name': 'john', 'age': 34},
{'id': 1, 'name': 'john', 'age': 34},
{'id': 2, 'name': 'hanna', 'age': 30}
]
解决问题
要删除字典列表中的重复项,一种简单的方法是迭代列表并将每个字典与其他字典进行比较。然而,对于大型列表,此过程的计算成本可能很高。
使用临时字典
更有效的解决方案利用临时字典来处理重复数据删除。字典的键设置为每个字典的 id 字段,值设置为字典本身。此操作有效地过滤掉重复项,因为每个唯一 id 只对应一个字典条目。
检索唯一字典
填充临时字典后,值(其中代表唯一的字典)可以使用values()方法检索。
Python实现
Python 2.7:
{v['id']:v for v in L}.values()
Python 3:
list({v['id']:v for v in L}.values())
:v 为 L 中的 v}.values())Python 2.5/2.6:
dict((v['id'],v) for v in L).values()
dict((v['id' ],v) for v in L).values()这些简洁的解决方案产生了一系列独特的字典:dict((v['id'],v) for v in L).values()
[
{'id': 1, '姓名': '约翰', '年龄': 34},
{'id': 2, '姓名': '汉娜', '年龄': 30}
]这种方法通过利用临时字典来识别和提取唯一的字典值,从而有效地删除重复项。 免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3