2016-03-14 3 views
0

У меня есть следующий кортеж:Сортировка кортежей по первой затем второй, то третий

[[278, 388, 0.95434654], [279, 388, 0.98770386], [280, 388, 0.960356], [442, 388, 0.98245245], [443, 388, 0.96607447], [278, 389, 0.95714802], [279, 389, 0.98451048], [280, 389, 0.95131117], [442, 389, 0.98007435], [443, 389, 0.95733315]] 

Я хотел бы, чтобы отсортировать его первым, то вторым, то третьим.

Я попытался следующие, но это только сортирует первый:

def getKey(item): 
    return item[0] 

all_matches_tuple = sorted(all_matches_tuple, key=getKey) 
+0

Примечание: это не кортежи. Это списки. У вас есть список списков. – Andy

+0

Я исправил орфографию 'tuple', но у вас действительно есть списки здесь. –

+0

Извините, я думал, что должен иметь ключевое слово. Это работает – Richard

ответ

1

Просто сорт без ключа, по умолчанию для сортировки кортежи в лексикографическом порядке:

sorted(all_matches_tuple) 

Демо:

>>> sorted([[278, 388, 0.95434654], [279, 388, 0.98770386], [280, 388, 0.960356], [442, 388, 0.98245245], [443, 388, 0.96607447], [278, 389, 0.95714802], [279, 389, 0.98451048], [280, 389, 0.95131117], [442, 389, 0.98007435], [443, 389, 0.95733315]]) 
[[278, 388, 0.95434654], [278, 389, 0.95714802], [279, 388, 0.98770386], [279, 389, 0.98451048], [280, 388, 0.960356], [280, 389, 0.95131117], [442, 388, 0.98245245], [442, 389, 0.98007435], [443, 388, 0.96607447], [443, 389, 0.95733315]] 

но обратите внимание, что ваш образец фактически не содержит значений, где и первое, и второе n umber равны.

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