【问题标题】:Python sort list by numerical value at specific point in namePython按名称中特定点的数值对列表进行排序
【发布时间】:2022-12-17 11:29:59
【问题描述】:

我有一个清单:

'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'

我想对列表进行排序,以便第 -2 天图像 (d-2) 出现在第 -1 天 (d-1) 之前。所有 d-2 都可以出现在每组的开头,以便:

'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-2 都可以在开头分组:

  '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', etc'

两种变体都很好。第二个可能更容易。

【问题讨论】:

    标签: python list sorting


    【解决方案1】:

    匹配第二个输出的一种方法(首先是 d-2,然后是 d-1,然后是其余的)是:

    res = sorted(lst, key=lambda s: ('d-2' not in s, 'd-1' not in s))
    print(res)
    

    输出

    ['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_High4_d1.tif',
     '45MO_221115_High4_d3.tif',
     '45MO_221115_Low1_d0.tif',
     '45MO_221115_Low1_d1.tif',
     '45MO_221115_Low1_d3.tif',
     '45MO_221115_Med2_d0.tif',
     '45MO_221115_Med2_d1.tif',
     '45MO_221115_Med2_d3.tif']
    

    【讨论】:

      猜你喜欢
      • 2022-09-27
      • 2019-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多