按特定日期排序?数字?清单中的清单

Sort by specific date? numbers? included list in list

我正在做一些学习工作,遇到了一些问题!

我有这个日程表

lists = [['Lunch', '2021-04-05 12:00', '2021-04-05 13:00'], ['Dinner', '2021-04-05 13:00', '2021-04-05 14:00'], ['Lunch', '2021-04-04 13:00', '2021-04-04 14:00']]

而且,我想按开始日期对列表进行排序,即列表[1]

下面是我尝试做的

lists = [['Lunch', '2021-04-05 12:00', '2021-04-05 13:00'], ['Dinner', '2021-04-05 13:00', '2021-04-05 14:00'], ['감자', '2021-04-04 13:00', '2021-04-04 14:00']]
sorted_lists = []
for i in lists:
    i[1] = i[1].replace('-', '').replace(' ', '').replace(':', '')
    i[2] = i[1].replace('-', '').replace(' ', '').replace(':', '')
    sorted_lists.append(i)
    
sorted(sorted_lists, key=lambda date: date[1])

print(sorted_lists)

注意,我不想使用日期、时间等任何模块

但是,它会切换每个项目的位置。

有什么按开始日期排序的最佳方法吗?

谢谢。

如果我的解释不好,请告诉我..!

谢谢大家阅读

如果您的日期如您所示(即它们的词汇顺序与时间顺序一致),那么为什么不简单地:

sorted(lists, key=lambda e: e[1])

对于您提供的数据,可以得出:

[['Lunch', '2021-04-04 13:00', '2021-04-04 14:00'],
 ['Lunch', '2021-04-05 12:00', '2021-04-05 13:00'],
 ['Dinner', '2021-04-05 13:00', '2021-04-05 14:00']]

澄清:我总是尽量避免在我的回答中出现副作用。这意味着我提供的代码通常会创建新值并且不会影响现有变量,除非有适当说明。我认为这些副作用具有潜在危险,除非有非常明确的记录。想象一个你调用的函数偷偷地修改你的列表或你的 DataFrame 就地...

因此,上面的答案应该分配给选择的结果变量。我看到你使用 sorted_lists,所以:

sorted_lists = sorted(lists, key=lambda e: e[1])