2015-02-07 3 views
0

Я изо всех сил пытался назвать название вопроса, как вы можете сказать. В любом случае, чтобы поставить вопрос в какой-то контекст: у меня есть текстовый файл с высоким счетом, данные были помещены в список. Оценки каждого человека были отсортированы, поэтому теперь они упорядочиваются от самого низкого до самого высокого.Python - индексирование, сравнение и добавление

data = [['Stuart', 'got', 'a', 'highscore', 'of:', '92'], [ 'Steve', 
     'got', 'a', 'highscore', 'of:', '53'], ['Andrew', 'got', 'a', 
     'highscore', 'of:', '73'], ['Luke', 'got', 'a', 'highscore', 
     'of:', '1'], [ 'Shaney', 'got', 'a', 'highscore', 'of:', '77'], 
     ['Robert', 'got', 'a', 'highscore', 'of:', '33'], ['Moley', 
     'got', 'a', 'highscore', 'of:', '6'], [ 'Kev', 'got', 'a', 
     'highscore', 'of', '2322']] 
numbers = [1, 6, 33, 53, 73, 77, 92, 2322] 
temp = [] 

Я стремлюсь создать список под названием «Темп», который содержит упорядоченных данных. «Упорядоченные данные» будут исходной датой, но расположены так, что ['Luke', 'got', 'a', 'highscore', 'of:', '1'] будет в начале списка «temp».

Как обычно, любая обратная связь, которая поможет мне, будет очень благодарна.

ответ

3
temp = sorted(data, key= lambda s: int(s[-1])) 

Я думаю, что это будет работать, я не проверял, хотя

+0

Это просто нужно было преобразовать в целое число. Большое спасибо за ответ, хотя, я буквально был возрастом, пытаясь понять это, высоко оценил человека. – Shaney96

3

рода убедившись, что приведение к Int или "100000" будет отсортирован перед "2":

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

Если вы действительно хотите сохранить последнюю запись как int в своем списке вывода:

temp = [x[:-1]+[int(x[-1])] for x in sorted(data,key=lambda x:int(x[-1]))] 
+1

@BhargavRao, добавлено оба –

+1

Typo ... * to * .. –

+0

@BhargavRao LMAO. Я думал об одном и том же ... но я не хотел этого говорить ... в любом случае, +1 для полного ответа. – Eithos