关于python:对字符串列表进行排序

Sort a list of strings

本问题已经有最佳答案,请猛点这里访问。

我有一个字符串列表,我想按每个字符串的第二个元素排序。

这是我的代码:

1
2
3
4
5
6
7
import sys

line =""
for n in [line for line in sys.stdin.readlines()]:
    list = []
    list = n
    print list.split()

输出:

1
2
3
4
['qlwekjrwer', '0']
['sdlkfsdf', '6245']
['lkdjfs', '3985']
['sdfsdfs', '4085']

我想要做的是按照列表中每个字符串的第二个元素以降序排序。我知道您将不得不以某种方式使用" list.split()[1]",但我不知道从哪里开始。

我想要什么:

1
2
3
4
['sdlkfsdf', '6245']
['sdfsdfs', '4085']
['lkdjfs', '3985']
['qlwekjrwer', '0']

我是否必须实施一些冒泡排序?


使用sorted()函数:

1
2
result = sorted([l.split() for l in sys.stdin.readlines()], key=lambda l: int(l[1]), reverse=True)
print(result)

输出:

1
[['sdlkfsdf', '6245'], ['sdfsdfs', '4085'], ['lkdjfs', '3985'], ['qlwekjrwer', '0']]