You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按文件名中d后的数值对列表排序,使d-2排在d-1之前?

实现两种自定义文件列表排序方式

原始文件列表:

lst = ['45MO_221115_High4_d-1.tif', '45MO_221115_High4_d-2.tif', '45MO_221115_High4_d0.tif', '45MO_221115_High4_d1.tif', '45MO_221115_High4_d3.tif',
       '45MO_221115_Low1_d-1.tif', '45MO_221115_Low1_d-2.tif', '45MO_221115_Low1_d0.tif', '45MO_221115_Low1_d1.tif', '45MO_221115_Low1_d3.tif',
       '45MO_221115_Med2_d-1.tif', '45MO_221115_Med2_d-2.tif', '45MO_221115_Med2_d0.tif', '45MO_221115_Med2_d1.tif', '45MO_221115_Med2_d3.tif']

需求:让文件名中d-2的文件排在d-1之前,以下是两种符合要求的实现方案:

方案一:分组内按d值排序

每个分组(如High4、Low1、Med2)内部按d后的数值从小到大排序,同一分组内保持d-2→d-1→d0→d1→d3的顺序。

实现代码

def sort_key_group(item):
    # 拆分文件名,提取分组标识和d对应的数值
    parts = item.split('_')
    group_label = parts[2]
    d_num = int(parts[3].split('.')[0][1:])  # 提取d后面的字符并转为整数
    return (group_label, d_num)

# 执行排序
lst_s_group = sorted(lst, key=sort_key_group)

排序结果

['45MO_221115_High4_d-2.tif', '45MO_221115_High4_d-1.tif', '45MO_221115_High4_d0.tif', '45MO_221115_High4_d1.tif', '45MO_221115_High4_d3.tif',
 '45MO_221115_Low1_d-2.tif', '45MO_221115_Low1_d-1.tif', '45MO_221115_Low1_d0.tif', '45MO_221115_Low1_d1.tif', '45MO_221115_Low1_d3.tif',
 '45MO_221115_Med2_d-2.tif', '45MO_221115_Med2_d-1.tif', '45MO_221115_Med2_d0.tif', '45MO_221115_Med2_d1.tif', '45MO_221115_Med2_d3.tif']

方案二:按d值集中排序

所有d-2的文件排在最前面,接着是d-1、d0、d1、d3的文件,同一d值的文件顺序保持原列表中的相对顺序(sorted为稳定排序)。

实现代码(简洁版)

# 直接用lambda表达式作为排序键
lst_s_d_first = sorted(lst, key=lambda x: int(x.split('_')[3].split('.')[0][1:]))

排序结果示例

['45MO_221115_High4_d-2.tif', '45MO_221115_Low1_d-2.tif', '45MO_221115_Med2_d-2.tif',
 '45MO_221115_High4_d-1.tif', '45MO_221115_Low1_d-1.tif', '45MO_221115_Med2_d-1.tif',
 '45MO_221115_High4_d0.tif', '45MO_221115_Low1_d0.tif', '45MO_221115_Med2_d0.tif',
 '45MO_221115_High4_d1.tif', '45MO_221115_Low1_d1.tif', '45MO_221115_Med2_d1.tif',
 '45MO_221115_High4_d3.tif', '45MO_221115_Low1_d3.tif', '45MO_221115_Med2_d3.tif']

内容的提问来源于stack exchange,提问作者Munkhtur Otgonbayar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 19:05:21