你有一个字典或者实例的序列,然后你想根据某个特定的字段(比如‘date’)来分组迭代访问。
itertools.groupby( )函数
rows = [ {‘address‘: ‘5412 N CLARK‘, ‘date‘: ‘07/01/2012‘}, {‘address‘: ‘5148 N CLARK‘, ‘date‘: ‘07/04/2012‘}, {‘address‘: ‘5800 E 58TH‘, ‘date‘: ‘07/02/2012‘}, {‘address‘: ‘2122 N CLARK‘, ‘date‘: ‘07/03/2012‘}, {‘address‘: ‘5645 N RAVENSWOOD‘, ‘date‘: ‘07/02/2012‘}, {‘address‘: ‘1060 W ADDISON‘, ‘date‘: ‘07/02/2012‘}, {‘address‘: ‘4801 N BROADWAY‘, ‘date‘: ‘07/01/2012‘}, {‘address‘: ‘1039 W GRANVILLE‘, ‘date‘: ‘07/04/2012‘}, ] from operator import itemgetter from itertools import groupby rows.sort(key=itemgetter(‘date‘)) print(rows) [{‘date‘: ‘07/01/2012‘, ‘address‘: ‘5412 N CLARK‘}, {‘date‘: ‘07/01/2012‘, ‘address‘: ‘4801 N BROADWAY‘}, {‘date‘: ‘07/02/2012‘, ‘address‘: ‘5800 E 58TH‘}, {‘date‘: ‘07/02/2012‘, ‘address‘: ‘5645 N RAVENSWOOD‘}, {‘date‘: ‘07/02/2012‘, ‘address‘: ‘1060 W ADDISON‘}, {‘date‘: ‘07/03/2012‘, ‘address‘: ‘2122 N CLARK‘}, {‘date‘: ‘07/04/2012‘, ‘address‘: ‘5148 N CLARK‘}, {‘date‘: ‘07/04/2012‘, ‘address‘: ‘1039 W GRANVILLE‘}] for date,items in groupby(rows,key=itemgetter(‘date‘)): print(date) for i in items: print(‘ ‘,i) 07/01/2012 {‘date‘: ‘07/01/2012‘, ‘address‘: ‘5412 N CLARK‘} {‘date‘: ‘07/01/2012‘, ‘address‘: ‘4801 N BROADWAY‘} 07/02/2012 {‘date‘: ‘07/02/2012‘, ‘address‘: ‘5800 E 58TH‘} {‘date‘: ‘07/02/2012‘, ‘address‘: ‘5645 N RAVENSWOOD‘} {‘date‘: ‘07/02/2012‘, ‘address‘: ‘1060 W ADDISON‘} 07/03/2012 {‘date‘: ‘07/03/2012‘, ‘address‘: ‘2122 N CLARK‘} 07/04/2012 {‘date‘: ‘07/04/2012‘, ‘address‘: ‘5148 N CLARK‘} {‘date‘: ‘07/04/2012‘, ‘address‘: ‘1039 W GRANVILLE‘}
[PY3]——根据某个特定的字段来分组迭代访问一个字段或序列?/ itertools.groupby( )函数
原文:http://www.cnblogs.com/snsdzjlz320/p/7196091.html