欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python对字典数据排序并分组

程序员文章站 2022-05-02 18:08:36
...

有时我们想对字典里面指定字段排序或者分组,可以使用itemgetter()方法排序,根据itertools.groupby()方法分组:

  • 下面有一组数据,我们想根据日期分组,具体操作实现如下:
from itertools import groupby
from operator import itemgetter

mes = [
    {'address': '北京','date': '7/1/2017'},
    {'address': '上海','date': '7/4/2017'},
    {'address': '天津','date': '7/2/2017'},
    {'address': '杭州','date': '7/3/2017'},
    {'address': '银川','date': '7/2/2017'},
    {'address': '深圳','date': '7/2/2017'},
    {'address': '山东','date': '7/5/2017'},
    {'address': '西安','date': '7/4/2017'},
]
#先按照日期排序
mes.sort(key=itemgetter('date'))
for date,items in groupby(mes,key=itemgetter('date')):
    print(date)
    for i in items:
        print(' ',i)
输出:
7/1/2017
  {'address': '北京', 'date': '7/1/2017'}
7/2/2017
  {'address': '天津', 'date': '7/2/2017'}
  {'address': '银川', 'date': '7/2/2017'}
  {'address': '深圳', 'date': '7/2/2017'}
7/3/2017
  {'address': '杭州', 'date': '7/3/2017'}
7/4/2017
  {'address': '上海', 'date': '7/4/2017'}
  {'address': '西安', 'date': '7/4/2017'}
7/5/2017
  {'address': '山东', 'date': '7/5/2017'}