我有一个基于值排序列表的简单问题。 我想订购一个字符串列表,因为它们是整数,并考虑只排序从第二个位置开始的字符。
举个例子,我有这个清单:
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']
答案 0 :(得分:3)
您可以使用lambda函数指定自定义排序键:
SORTED_L = sorted(L, key=lambda x: int(x.replace('X', ''))
在这种情况下,对于L中的每个值,lambda
将删除“X”并转换为int
。