如何按日期升序排列列表?

2024-09-29 01:24:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由两部分组成的子列表:

my_list = [["10/15/2018", "John"], ["10/12/2019", "Beth"], ["9/15/2018", "Cory"]]

我需要按日期升序排序的清单,并逐行打印

我知道list.sort()不能产生正确的顺序。我尝试使用datetime.strtime,但如果没有错误消息,就无法使用它

def display_by_date(list):

    list.sort(key=lambda x: 
      datetime.datetime.strptime(x['Created'], '%m %d %Y'))

      for entry in list:
        print(entry)

display_by_date(my_list)

TypeError: list indices must be integers or slices, not str


Tags: 列表datetimedateby排序顺序mydisplay
2条回答

尝试用^{}指定排序key

from datetime import datetime

my_list = [["10/15/2018", "John"], ["10/12/2019", "Beth"], ["9/15/2018", "Cory"]]

print(sorted(my_list, key=lambda x: datetime.strptime(x[0], '%m/%d/%Y')))
# [['9/15/2018', 'Cory'], ['10/15/2018', 'John'], ['10/12/2019', 'Beth']]

请尝试以下代码:

import pandas as pd

my_list = [["10/15/2018", "John"], ["10/12/2019", "Beth"], ["9/15/2018", "Cory"], ["10/11/2019", "Carl"]]

my_list.sort(key=lambda x: pd.to_datetime(x[0], format='%m/%d/%Y'))

并给出:

[['9/15/2018', 'Cory'],
 ['10/15/2018', 'John'],
 ['10/11/2019', 'Carl'],
 ['10/12/2019', 'Beth']]

相关问题 更多 >