python 列表里字典根据某个值分组

from operator import itemgetter
from itertools import groupby


rows = [{'a': 10, 'age': 2}, {'a': 20, 'age': 3}, {'a': 30, 'age': 2}, {'a': 40, 'age': 4}]
# rows = sorted(rows, key=itemgetter('age'))  # [{'a': 10, 'age': 2}, {'a': 30, 'age': 2}, {'a': 20, 'age': 3}, {'a': 40, 'age': 4}]
print('rows = ', rows)
for date, items in groupby(rows, key=itemgetter('age')):
    print (date,list(items))
# 需要先排序再输出
'''
2 [{'a': 10, 'age': 2}, {'a': 30, 'age': 2}]
3 [{'a': 20, 'age': 3}]
4 [{'a': 40, 'age': 4}]
'''

# 不排序直接输出的话
'''
2 [{'a': 10, 'age': 2}]
3 [{'a': 20, 'age': 3}]
2 [{'a': 30, 'age': 2}]
4 [{'a': 40, 'age': 4}]
'''


'''
groupby()函数扫描整个序列并且查找连续相同值的元素序列

'''
posted @ 2020-05-27 14:29  殇夜00  阅读(9)  评论(0)    收藏  举报