【问题标题】:Sort list of strings as integers [duplicate]将字符串列表排序为整数[重复]
【发布时间】:2019-02-21 00:15:28
【问题描述】:

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

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]

【问题讨论】:

  • 改用key=lambda x: int(x.split("_")[0])
  • 我认为更好的副本是stackoverflow.com/questions/2669059/…
  • my_list.sort(key=lambda x: (int(x.split("_",)[0]))) 是解决方案。我只需要在 int(...) 周围再放一组括号

标签: python list sorting


【解决方案1】:

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

正如上面的评论所说,你需要把它包装在一个

int()

【讨论】:

  • 哦,事实上我在发帖之前就这样做了。它仍然不起作用,因为它将下划线之前的部分视为字符串。但我需要将其转换为整数
猜你喜欢
  • 1970-01-01
  • 2012-05-08
  • 2021-04-05
  • 2021-07-26
  • 2014-04-21
  • 2018-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多