python - 我需要按日期对 python 列表列表进行排序

标签 python sorting datetime

我需要按日期对列表列表进行排序:

mylist=['ML-M01 Qual Report 07/31/13', 'ML36220010 Complete Qual Testing 07/24/13', 'ML36220045 Final FRB 07/13/13', 'ML9822D2600 Brief to PM 08/5/13']

从这个网站,我得到了这段代码:

sorted(mylist, key=lambda x: datetime.datetime.strptime(x[2], '%m/%d/%y'))

但是,我收到此错误消息:

sorted(mylist,key=lambda x: datetime.datetime.strptime(x[2], '%m/%d/%y'))
Traceback (most recent call last):
  File "<pyshell#25>", line 1, in <module>
    sorted(mylist,key=lambda x: datetime.datetime.strptime(x[2], '%m/%d/%y'))
  File "<pyshell#25>", line 1, in <lambda>
  sorted(mylist,key=lambda x: datetime.datetime.strptime(x[2], '%m/%d/%y'))
  File "C:\Python25\Lib\_strptime.py", line 330, in strptime
    (data_string, format))
ValueError: time data did not match format:  data=-  fmt=%m/%d/%y

需要帮助 - 需要按 3d 元素对列表进行排序 - 从最旧到最新

最佳答案

列表中的每个条目都是一个字符串,而不是一个列表,因此 x[2] 是一个字符('-' 表示您的第一个条目)。您需要将日期部分拆分为strptime():

sorted(mylist, key=lambda x: datetime.datetime.strptime(x.rsplit(None, 1)[-1], '%m/%d/%y'))

为了提高效率,str.rsplit() 一次在空格处拆分:

>>> 'ML-M01 Qual Report 07/31/13'.rsplit(None, 1)
['ML-M01 Qual Report', '07/31/13']
>>> 'ML-M01 Qual Report 07/31/13'.rsplit(None, 1)[-1]
'07/31/13'

结果:

>>> sorted(mylist, key=lambda x: datetime.datetime.strptime(x.rsplit(None, 1)[-1], '%m/%d/%y'))
['ML36220045 Final FRB 07/13/13', 'ML36220010 Complete Qual Testing 07/24/13', 'ML-M01 Qual Report 07/31/13', 'ML9822D2600 Brief to PM 08/5/13']

请注意,sorted() 返回一个新的排序列表,原始列表不受影响。如果你想对 mylist 进行排序,调用 list.sort() 方法:

mylist.sort(key=lambda x: datetime.datetime.strptime(x.rsplit(None, 1)[-1], '%m/%d/%y'))

关于python - 我需要按日期对 python 列表列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17169214/

相关文章:

python - Pandas to_datetime : Unknown string format

python - 我怎样才能重复播放一个声音样本,让下一个循环与前一个循环重叠

jquery - 如何使用 JQuery DataTables 根据每个单元格中值的子字符串对列进行排序

algorithm - 以递增的运行时间对流程进行排序是创建一组非重叠流程的最佳方式吗?

python - 使用 strptime() 解析日期/时间字符串时如何保留时区?

asp.net - 是否有标准方法来表示 ASP.NET 中的 TSQL 最小日期

python - 如何从 Python 中的图像中获取信噪比?

python - 将数据库用作 Custom_Storage 和 Libtorrent (Python)

python - 如何通过计算将数据帧行划分为 bin

regex - 使用 Perl,如何使用每个数组元素内的数字值对数组进行排序?