python - 先按年排序列表列表,然后按月排序

标签 python python-3.x list sorting

<分区>

我有一个看起来像这样的列表列表:

dateList = [['2014', '4'], ['2015', '6'], ['2017', '6'], ['2016', '2'], ['2016', '3'], ['2017', '9'], ['2016', '6'], ['2017', '3'], ['2014', '8'], ['2014', '10'], ['2017', '10'], ['2014', '9'], ['2014', '3'], ['2015', '11'], ['2015', '2']]

我一直在尝试先按年排序,然后再按月排序。我已经成功地使用

按年份对其进行了排序
sortedList = sorted(dateList, key = lambda x: int(x[0]))

但是,我想不出一种方法可以在保持年份升序的同时按月对它进行排序。

最佳答案

传递一个元组:

sorted(dateList, key = lambda x: (int(x[0]),int(x[1])))

但这看起来更好:

sorted(dateList, key = lambda x: tuple(map(int,x)))

另一种选择是使用:

import datetime 
sorted(dateList, key = lambda x: datetime.datetime.strptime(''.join(x),'%Y%m'))

关于python - 先按年排序列表列表,然后按月排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47853828/

相关文章:

Python比较2个列表和2个元组与等号

python - .desktop 文件中的名称在 tkinter 中不起作用 - python

python - Pandas :如何过滤数据帧中至少出现 n 次的重复项目的数据帧

python - 如何修复 Django 迁移的顺序?

python - 如何将两个复杂的字典合并在一个表达式中?

python - python3 : list vs List中的静态类型

c++ - 对象 C 的排序列表;选择字段

c# - 为什么 Enumerator.MoveNext 在与 using 和 async-await 一起使用时不能像我预期的那样工作?

python - PIL zip jpeg 解码器在运行时不工作,但在安装/自测试时工作

python - Django 反向函数参数