Я заинтересован в сортировке списка, который сформирован из нескольких подсписков.

Например, я получаю в качестве входных данных следующее:

Rus Dan 264
Pop Alin 263
Stan Darius 304
Pop Tudor 252
Rusu Alin 323
Stroe Mihai 279
Rusu Paul 268

Я читаю строки:

for i in range(n):
    c=input("").split()
    b.append(c)

В результате я получаю:

[['Rus', 'Dan', '264'], ['Pop', 'Alin', '263'], ['Stan', 'Darius', '304'], ['Pop', 'Tudor', '252'], ['Rusu', 'Alin', '323'], ['Stroe', 'Mihai', '279'], ['Rusu', 'Paul', '268']]

Я заинтересован в том, чтобы упорядочить подсписки по последнему номеру, а не по символу.

Есть предложения, пожалуйста?

Я попытался разделить подсписки, чтобы сделать последний номер int и упорядочить каждый подсписок, используя .sort (), но у меня есть несколько ошибок.

for sublist in n:
    for item in sublist:
        flat_list.append(item)

for i in range(n)
    flat_list[i][2]=int(flat_list[i][2])

b=flat_list.sort()

#not the exact code but something extremely similar
0
Danila Bogdan 14 Мар 2018 в 00:03

2 ответа

Лучший ответ

Попробуй это :

data=[['Rus', 'Dan', '264'], ['Pop', 'Alin', '263'], ['Stan', 'Darius', '304'], ['Pop', 'Tudor', '252'], ['Rusu', 'Alin', '323'], ['Stroe', 'Mihai', '279'], ['Rusu', 'Paul', '268']]

print(sorted(data,key=lambda x:int(x[-1])))

Выход:

[['Pop', 'Tudor', '252'], ['Pop', 'Alin', '263'], ['Rus', 'Dan', '264'], ['Rusu', 'Paul', '268'], ['Stroe', 'Mihai', '279'], ['Stan', 'Darius', '304'], ['Rusu', 'Alin', '323']]
2
Aaditya Ura 13 Мар 2018 в 21:11

Сортировка с использованием пользовательского ключа. Вы можете использовать анонимную функцию:

data.sort(key=lambda s: int(s[2]))
3
wim 13 Мар 2018 в 21:05