我有一个词典列表
l = [
{'firstname': 'joe', 'surname': 'bloggs'},
{'firstname': 'john', 'surname': 'smith'},
{'firstname': 'joe', 'surname': 'bloggs'},
{'firstname': 'jane', 'surname': 'bloggs'}
]
Run Code Online (Sandbox Code Playgroud)
我如何删除重复,即{'firstname': 'joe', 'surname': 'bloggs'}出现两次所以会希望它只出现一次?
Céd*_*ien 57
这样的事情应该做的事情:
result = [dict(tupleized) for tupleized in set(tuple(item.items()) for item in l)]
Run Code Online (Sandbox Code Playgroud)
首先,我在元组列表中转换初始字典,然后将它们放入一个集合(删除重复条目),然后再转换为字典.
小智 12
import itertools
import operator
from operator import itemgetter
import pprint
l = [
{'firstname': 'joe', 'surname': 'bloggs'},
{'firstname': 'john', 'surname': 'smith'},
{'firstname': 'joe', 'surname': 'bloggs'},
{'firstname': 'jane', 'surname': 'bloggs'}
]
getvals = operator.itemgetter('firstname', 'surname')
l.sort(key=getvals)
result = []
for k, g in itertools.groupby(l, getvals):
result.append(g.next())
l[:] = result
pprint.pprint(l)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17524 次 |
| 最近记录: |