2016-11-29 3 views
1

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

[('7', 10), ('2', 9), ('8', 9)] 

Я хотел бы, чтобы отсортировать их по первому элементу, как так:

[('2',9),('7', 10),('8', 9)] 

Я попытался:

test_val = [('7', 10), ('2', 9), ('8', 9)] 
test_val.sort(key=lambda x: x[0]) 

, который я нашел из here

Однако список не отсортирован.

Реальный пример данных:

Перед Покушение:

[('7', 10), ('2', 9), ('8', 9), ('6', 8), ('24', 8), ('3', 7), ('5', 7), ('9', 6), ('35', 6), ('15', 5), ('16', 5), ('1', 4), ('14', 4), ('17', 3), ('19', 3), ('12', 2), ('39', 2), ('26', 1), ('25', 1), ('22', 0)] 

После Покушение:

[('1', 4), ('12', 2), ('14', 4), ('15', 5), ('16', 5), ('17', 3), ('19', 3), ('2', 9), ('22', 0), ('24', 8), ('25', 1), ('26', 1), ('3', 7), ('35', 6), ('39', 2), ('5', 7), ('6', 8), ('7', 10), ('8', 9), ('9', 6)] 

ответ

5

Список тоже отсортирован. Обратите внимание, что ваш ключ сортировки - это строка , а не целое число. Может быть, то, что вы хотите является

test_val.sort(key=lambda x: int(x[0])) 
+0

Спасибо за ответ, у меня был чертовски время с ним! Я соглашусь, когда смогу – Turtle

+0

Рад, что проблема исправлена. Был там. – Prune

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