天天看点

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

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'}