2017-02-09 3 views
1

У меня есть список строк, и я хочу сортировать по второму элементу каждой строки.Сортировка списка строк

Вот мой код:

import sys 

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

выход:

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

То, что я хочу сделать, это сортировать по второму элементу каждой строки в списке в порядке убывания. Я знаю, что вам нужно будет использовать «list.split() [1]», но я не знаю, с чего начать.

что я хочу:

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

бы я должен реализовать некоторые пузырьковую сортировку?

ответ

0

Использование sorted() функции:

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

Выход:

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

Это почти правильно, потому что с моим, например, все цифры имеют одинаковую длину, но когда это не такой же длины, это Безразлично Правильно. –

+0

Как например: это результат вашего вида ['sdfsdf', '8677'], ['werwer', '6245'], ['qwerwrg', '5866], [' oiuois ',' 55666 '], но вывод должен быть ['oiuois', '55666'], ['sdfsdf', '8677'], ['werwer', '6245'], ['qwerwrg', '5866], –

+0

@ChappyKhmao, использовать мои обновить, он должен работать – RomanPerekhrest

Смежные вопросы