python对字典数据排序并分组

有时我们想对字典里面指定字段排序或者分组,可以使用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'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值