将字符串列表按整数排序

时间:2019-02-20 15:17:14

标签: python list sorting

我有一个字符串列表。我想根据数字(由元素表示)和元素的长度对该列表进行排序。

19206_63083.png必须在1019209_63119.png之前

mylist.sort(key=lambda x: x.split("_",)[0])

这不起作用。 10163841_15591.png在1882828_15293.png之前。但是不应该这样,因为下划线之前的第一部分实际上是一个较大的数字。

我想要的输出是这样的:

    my_list = [19206_63083.png,
    75131_63085.png,
    129899_63087.png,
    185747_63089.png,
    240948_63091.png,
    296626_63093.png,
    351670_63095.png,
    407945_63097.png,
    463197_63099.png,
    518738_63101.png,
    577527_63103.png,
    629717_63105.png,
    686448_63107.png,
    741521_63109.png,
    796843_63111.png,
    852569_63113.png,
    907921_63115.png,
    962966_63117.png,
    1019209_63119.png,
    1073904_63121.png,
    1129968_63123.png,
    1185872_63125.png,
    1241292_63127.png,
    1297920_63129.png,
    1353177_63131.png,
    1408595_63133.png,
    1463281_63135.png,
    1519764_63137.png,
    1630077_63141.png,
    1686200_63143.png,
    1797925_63147.png,
    1909026_63151.png,
    2019367_63155.png,
    2185323_63161.png,
    2241858_63163.png,
    2352508_63167.png,
    2408718_63169.png,
    2464518_63171.png,
    2576205_63175.png,
    2685535_63179.png,
    2741758_63181.png,
    2853860_63185.png,
    2963621_63189.png,
    3074643_63193.png,
    3130612_63195.png,
    3241831_63199.png,
    3299111_63201.png,
    ...
    50675605_17049.png,
    50731840_17051.png,
    50786088_17053.png,
    50842895_17055.png,
    50898226_17057.png,
    50952973_17059.png,
    51010247_17061.png,
    51064070_17063.png,
    51120808_17065.png]

1 个答案:

答案 0 :(得分:0)

您需要将“-”替换为“ _”

并且如上面的注释所述,您需要将其包装在

int()