Flutter-Dart:对含double与DateTime的嵌套列表按日期升序排序
按日期升序排序二维列表的解决方案
要实现对给定二维列表按日期升序排序且保留子列表结构,可以借助Python的datetime模块转换日期字符串,再利用排序方法指定排序依据:
代码实现
from datetime import datetime # 原始列表 myList = [[0.0, '3 Jan 2023'], [0.0, '7 Jan 2023'], [139.36986081071, '1 Jan 2023'], [139.84969328013125, '11 Jan 2023'], [97.84468694063244, '11 Jan 2023']] # 原地排序:按日期升序,以转换后的datetime对象为排序键 myList.sort(key=lambda x: datetime.strptime(x[1], "%d %b %Y")) # 输出排序后的列表 print(myList)
关键说明
datetime.strptime(x[1], "%d %b %Y"):将子列表中的日期字符串(格式为日 缩写月 年)转换为可比较的datetime对象,确保排序逻辑符合日期先后顺序。- 若不想修改原列表,可使用
sorted()函数生成新列表:sorted_list = sorted(myList, key=lambda x: datetime.strptime(x[1], "%d %b %Y"))
排序结果
执行后得到的有序列表为:
[[139.36986081071, '1 Jan 2023'], [0.0, '3 Jan 2023'], [0.0, '7 Jan 2023'], [139.84969328013125, '11 Jan 2023'], [97.84468694063244, '11 Jan 2023']]
内容的提问来源于stack exchange,提问作者Biobrolly
相关产品推荐
相关产品推荐

