【问题标题】:sorting a list of strings as they are integers [duplicate]对字符串列表进行排序,因为它们是整数[重复]
【发布时间】:2018-07-19 07:33:36
【问题描述】:

我有一个简单的问题,即根据值对列表进行排序。 我想订购一个字符串列表,因为它们是整数,并考虑仅对从第二个位置开始的字符进行排序。

例如,我有这个列表:

L = ['X102', 'X201', 'X805', 'X111', 'X032', 'X155', 'X0123', 'X1113', 'X881', 'X1022']

如果我使用sorted(L) 对其进行排序,我会得到:

['X0123', 'X032', 'X102', 'X1022', 'X111', 'X1113', 'X155', 'X201', 'X805', 'X881']

我的斗争是仅考虑“整数”对列表进行排序,因此只有数字位于“X”之后,以便结果如下所示:

SORTED_L = ['X032', 'X102', 'X111', 'X0123', 'X155', 'X201', 'X805', 'X881', 'X1022', 'X1113']

【问题讨论】:

  • sorted(L, key= lambda x: int(x[1:]))
  • 请找个骗子
  • 谢谢 - 回答了我的问题

标签: python sorting


【解决方案1】:

您可以使用 lambda 函数指定自定义排序键:

SORTED_L = sorted(L, key=lambda x: int(x.replace('X', ''))

在这种情况下,对于 L 中的每个值,lambda 将删除“X”并转换为 int

【讨论】:

    猜你喜欢
    • 2019-05-07
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多