from operator import itemgetter
from itertools import groupby
# 创建一个字典列表
li = [
{'address': 'CLARK', 'date': '07/01/2012'},
{'address': 'CLARK', 'date': '07/04/2012'},
{'address': '58TH', 'date': '07/02/2012'},
{'address': 'CLARK', 'date': '07/03/2012'},
{'address': 'RAVENSWOOD', 'date': '07/02/2012'},
{'address': 'ADDISON', 'date': '07/02/2012'},
{'address': 'BROADWAY', 'date': '07/01/2012'}
]
# 将列表按照date的值由小到大排序
li.sort(key = itemgetter("date"))
for date, item in groupby(li, key = itemgetter("date")):
print(date)
print(list(item))
print("-----------------------------------")
结果如下:
07/01/2012
[{'address': 'CLARK', 'date': '07/01/2012'}, {'address': 'BROADWAY', 'date': '07/01/2012'}]
-----------------------------------
07/02/2012
[{'address': '58TH', 'date': '07/02/2012'}, {'address': 'RAVENSWOOD', 'date': '07/02/2012'}, {'address': 'ADDISON', 'date': '07/02/2012'}]
-----------------------------------
07/03/2012
[{'address': 'CLARK', 'date': '07/03/2012'}]
-----------------------------------
07/04/2012
[{'address': 'CLARK', 'date': '07/04/2012'}]
-----------------------------------
可以看出,每次遍历,都把date相同的字典一次性遍历出来