方法一:
使用 itertools.groupby()
rows = [ {‘address‘: ‘5412 N CLARK ‘, ‘date ‘: ‘07/12/2012 ’ }, {‘address‘: ‘5148 N CLARK ‘, ‘date ’: ‘07/04/2012 ’ }, {‘address‘: ‘5800 E 58TH ’, ‘date ’: ‘07 /12/2012 ’ }, ]
from operator import itemgetter from itertools import groupby rows.sort(key=itemgetter(‘date‘)) for date, items in groupby(rows, key=itemgetter(‘date‘)): print(date) for i in items: print(‘ ‘, i)
在这里重要的是要先根据感兴趣的字段对数据进行排序。因为 groupby 只能检查连续的项,不首先排序的话,将无法按所想的方式来记录分组。
方法二:
from collections import defaultdict rows_by_date = defaultdict(list) for row in rows: rows_by_date[row[‘date‘]].append(row)
原文:https://www.cnblogs.com/BeautifulWorld/p/11706126.html