这就是我想要的
lis = [55,57,7,48,73,5]
根据第一个数字按降序排序后
lis = [73,7,57,55,5,48]
这是我尝试的但它只按递减顺序返回完整的数字
lis.sort(reverse=True)
lis = [73,57,55,48,7,5]
答案 0 :(得分:1)
我会在我链接的问题中调整答案,因为该解决方案涉及从文件中读取(尽管答案非常相似)。 sort()
函数接受一个名为key
的参数,该参数指示在对列表进行排序时要使用的函数。
lis.sort(key=lambda x: int(str(x)[0]))
在上面的函数中,int(str(x)[0])
将每个元素转换为一个字符串,取第一个字符(这将是第一个数字),并将其转换回整数。然后,Python根据第一个数字对数字进行排序。
答案 1 :(得分:0)
对字符串进行排序
如果您要对 int 列表进行排序,例如:
a = [1, 2, 3, 4, 5, 10, 11, 12, 13, 20, 22, 30]
print(sorted(a))
>>>
[1, 2, 3, 4, 5, 10, 11, 12, 13, 20, 22, 30]
现在,如果您要对同一个列表进行排序,但每个元素都是一个字符串对象:
a = ['1', '2', '3', '4', '5', '10', '11', '12', '13', '20', '22', '30']
print(sorted(a))
>>>
['1', '10', '11', '12', '13', '2', '20', '22', '3', '30', '4', '5']