Python---多字段排序,列表套字典,字典的排序,分组,itemgetter多字段排序

本文介绍了如何使用Python的operator模块中的itemgetter函数进行多字段排序,并结合itertools模块的groupby函数实现数据的高效分组。通过实例演示了按天气和日期对字典列表进行排序和分组的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

from operator import itemgetter
# Key使用itemgetter多字段排序
a = [{'date': '2019-12-15', 'weather': 'cloud'},
     {'date': '2019-12-13', 'weather': 'sunny'},
     {'date': '2019-12-14', 'weather': 'cloud'}]

# 指定多字段排序,先按照天气排序,在按照日期排序
a.sort(key=itemgetter('weather', 'date'))
print(a)
=================================================
[{'date': '2019-12-14', 'weather': 'cloud'}, {'date': '2019-12-15', 'weather': 'cloud'}, {'date': '2019-12-13', 'weather': 'sunny'}]

  分组,排序

from itertools import groupby
a = [{'date': '2019-12-15', 'weather': 'cloud'},
     {'date': '2019-12-13', 'weather': 'sunny'},
     {'date': '2019-12-14', 'weather': 'cloud'}]
# 必须先排序在分组
a.sort(key=itemgetter('weather', 'date'))
for k, item in groupby(a, key=itemgetter('weather')):
    print(k)
    # print(item)
    for i in item:
        print(i)
==================================================
cloud
{'date': '2019-12-14', 'weather': 'cloud'}
{'date': '2019-12-15', 'weather': 'cloud'}
sunny
{'date': '2019-12-13', 'weather': 'sunny'}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值