我有一个由两部分子列表组成的列表:
my_list = [["10/15/2018", "John"], ["10/12/2019", "Beth"], ["9/15/2018", "Cory"]]
我需要按日期升序排列并逐行打印的列表。
我知道list.sort()
的顺序不正确。我尝试使用datetime.strptime,但无法将其与错误消息一起使用。
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:列表索引必须是整数或切片,而不是str
答案 0 :(得分:2)
尝试使用sorted()
指定一种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']]
答案 1 :(得分:0)
尝试以下代码:
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']]