Python - 唯一字典列表 [英] Python - List of unique dictionaries
本文介绍了Python - 唯一字典列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我有一个字典列表:
<预><代码>[{'id': 1, 'name': 'john', 'age': 34},{'id': 1, 'name': 'john', 'age': 34},{'id': 2, 'name': 'hanna', 'age': 30},]并且我需要获取唯一字典的列表(删除重复项):
<预><代码>[{'id': 1, 'name': 'john', 'age': 34},{'id': 2, 'name': 'hanna', 'age': 30},]谁能帮助我以最有效的方式在 Python 中实现这一目标?
解决方案
所以创建一个临时字典,键为 id
.这会过滤掉重复项.字典的 values()
将是列表
在 Python2.7 中
<预><代码>>>>L=[... {'id':1,'name':'john', 'age':34},... {'id':1,'name':'john', 'age':34},... {'id':2,'name':'hanna', 'age':30},...]>>>{v['id']:v for v in L}.values()[{'age': 34, 'id': 1, 'name': 'john'}, {'age': 30, 'id': 2, 'name': 'hanna'}]在 Python3 中
<预><代码>>>>L=[... {'id':1,'name':'john', 'age':34},... {'id':1,'name':'john', 'age':34},... {'id':2,'name':'hanna', 'age':30},...]>>>list({v['id']:v for v in L}.values())[{'age': 34, 'id': 1, 'name': 'john'}, {'age': 30, 'id': 2, 'name': 'hanna'}]在 Python2.5/2.6 中
<预><代码>>>>L=[... {'id':1,'name':'john', 'age':34},... {'id':1,'name':'john', 'age':34},... {'id':2,'name':'hanna', 'age':30},...]>>>dict((v['id'],v) for v in L).values()[{'age': 34, 'id': 1, 'name': 'john'}, {'age': 30, 'id': 2, 'name': 'hanna'}]Let's say I got a list of dictionaries:
[
{'id': 1, 'name': 'john', 'age': 34},
{'id': 1, 'name': 'john', 'age': 34},
{'id': 2, 'name': 'hanna', 'age': 30},
]
and I need to obtain a list of unique dictionaries (removing the duplicates):
[
{'id': 1, 'name': 'john', 'age': 34},
{'id': 2, 'name': 'hanna', 'age': 30},
]
Can anyone help me with the most efficient way to achieve this in Python?
解决方案
So make a temporary dict with the key being the id
. This filters out the duplicates.
The values()
of the dict will be the list
In Python2.7
>>> L=[
... {'id':1,'name':'john', 'age':34},
... {'id':1,'name':'john', 'age':34},
... {'id':2,'name':'hanna', 'age':30},
... ]
>>> {v['id']:v for v in L}.values()
[{'age': 34, 'id': 1, 'name': 'john'}, {'age': 30, 'id': 2, 'name': 'hanna'}]
In Python3
>>> L=[
... {'id':1,'name':'john', 'age':34},
... {'id':1,'name':'john', 'age':34},
... {'id':2,'name':'hanna', 'age':30},
... ]
>>> list({v['id']:v for v in L}.values())
[{'age': 34, 'id': 1, 'name': 'john'}, {'age': 30, 'id': 2, 'name': 'hanna'}]
In Python2.5/2.6
>>> L=[
... {'id':1,'name':'john', 'age':34},
... {'id':1,'name':'john', 'age':34},
... {'id':2,'name':'hanna', 'age':30},
... ]
>>> dict((v['id'],v) for v in L).values()
[{'age': 34, 'id': 1, 'name': 'john'}, {'age': 30, 'id': 2, 'name': 'hanna'}]
这篇关于Python - 唯一字典列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文