方法一:
使用 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 groupbyrows.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 defaultdictrows_by_date = defaultdict(list)
for row in rows:
rows_by_date[row['date']].append(row)