我有一个小问题,特别是我想要做的就是排序这种列表
['520 0', '30000 1', '14000 2', '26273 3', '3829 4', '11776 5', '6947 6', '499 7',]
在第一次出现的号码之后。当我尝试使用sorted
方法时,我得不到正确的结果,而且我不想更改数据类型(因为以后的方法)。我想用它们的代数值对字符串进行排序。
有一种简单的方法吗?
答案 0 :(得分:0)
您可以尝试:
my_list = ['520 0', '30000 1', '14000 2', '26273 3', '3829 4', '11776 5', '6947 6', '499 7']
my_list.sort(key = lambda x: int(x.split()[0]))
答案 1 :(得分:0)
A = ['520 0', '30000 1', '14000 2', '26273 3', '3829 4', '11776 5', '6947 6', '499 7']
print sorted(A, key=lambda x:int(x.split()[0]))
# ['499 7', '520 0', '3829 4', '6947 6', '11776 5', '14000 2', '26273 3', '30000 1']
您要做的是natural sorting。您可以使用sorted()函数的key
参数执行此操作。
答案 2 :(得分:0)
我不能正确理解您希望如何对列表进行排序,但我认为您可以解决将key
函数传递给sorted
函数的问题。
例如,如果要对w.r.t进行排序。第一个数字,你应该像
那样sorted(l, key=lambda s: int(s.split(' ')[0]))