使用字符串排序列表&按数字顺序整数

时间:2016-02-18 19:10:16

标签: python python-3.x

我目前正在处理以下列表:

[['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))

非常感谢任何帮助。提前谢谢..

1 个答案:

答案 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']]