我目前正在处理以下列表:
[['John', '1', '2', '3'], ['Doe', '1', '2', '3']]
我是python的新手,我想按数字顺序(高 - 低)排序这个列表,但是在列表的开头维护字符串。像这样: -
[['John', '3', '2', '1'], ['Doe', '3', '2', '1']]
总会有一个名字&之后有整数。
我从csv文件中收集此列表,如下所示: -
import csv
with open('myCSV.csv', 'r') as f:
reader = csv.reader(f)
your_list = list(reader)
print(sorted(your_list))
非常感谢任何帮助。提前谢谢..
答案 0 :(得分:2)
遍历列表并仅对每个子列表的切片进行排序,而不包含第一个项目。要将字符串排序为数字,请将key=int
传递给已排序。使用reverse=True
,因为您需要颠倒顺序:
>>> l = [['John', '1', '2', '3'], ['Doe', '1', '2', '3']]
>>>
>>> [[sublist[0]] + sorted(sublist[1:], key=int, reverse=True) for sublist in l]
[['John', '3', '2', '1'], ['Doe', '3', '2', '1']]