如何根据第一个项目对列表中的项目进行分组?例如:
list= [{'main': 0328, 'a':1},{'main': 0328, 'b': 2},{'main': 0486, 'a': 5},{'main': 0486, 'b': 6}]
将转化为:
list [{'main: 0328','a':1, 'b':2}, {'main': 0486, 'a':5, 'b': 6}]
或者这更好:
list [{'a':1, 'b':2}, {'a':5, 'b': 6}]
使用 itertools.groupby
演示:
from itertools import groupby
l= [{'main': 328, 'a':1},{'main': 328, 'b': 2},{'main': 486, 'a': 5},{'main': 486, 'b': 6}]
res = []
for key, group in groupby(l, lambda x: x["main"]):
d = {}
for i in group:
del i['main']
d.update(i)
res.append(d)
print(res)
输出:
[{'a': 1, 'b': 2}, {'a': 5, 'b': 6}]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句