python 将值相同的key分组的方法

方法一:

使用 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)

猜你喜欢

转载自www.cnblogs.com/BeautifulWorld/p/11706126.html