python - 按具体日期排序?数字?列表中包含的列表
问题描述
我正在做一些学习工作,并陷入了一些问题!
我有这个日程表
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])
推荐阅读
- javascript - 如果必须检查 JS 中的两个字段,如何使用条件运算符?
- python - 断言前的 Python 可选类型
- windows - Flutter 在 Mac 和 windows 的项目上工作
- javascript - 单击菜单中的链接时打开的下拉菜单适用于 PC 视图,但不适用于移动视图
- python - 如何使我的轮廓在数据的地图投影中环绕?
- javascript - Javascript通过输入类型范围(重复)/一半完成调整两个图像的大小
- django - django 为一个辩论应用程序插入文本框
- reactjs - 如何在 AntD 分页中添加自定义 Button 以下载报告?
- database - 是否可以在 Microsoft Access 的表单中向表中添加多条记录?
- python - Django REST API、VUE 和 Scrapy 之间的套接字编程