2015-05-20 22 views
8

mam Poniższa listaJak listę list sortowania według długości podlist

a = [['a', 'b', 'c'], ['d', 'e'], ['f', 'g', 'h'], ['i', 'j', 'k', 'l'], ['m', 'n'], ['o']] 

Chciałbym, aby posortować listę w oparciu o długość ich listach podrzędnych. Wynik powinien być podobny:

a = [['o'],['d','e'],['m', 'n'],['a', 'b', 'c'],['f', 'g', 'h'], ['i','j','k','l']] 

Odpowiedz

16

Zastosowanie key parametr dostępny sort i sorted. Określa funkcję jednego argumentu, który jest używany, aby wyodrębnić klucza porównania z każdego elementu listy

In [6]: a = [['a', 'b', 'c'], ['d', 'e'], ['f', 'g', 'h'], ['i', 'j', 'k', 'l'], ['m', 'n'], ['o']] 

In [7]: a.sort(key=len) 

In [8]: print a 
[['o'], ['d', 'e'], ['m', 'n'], ['a', 'b', 'c'], ['f', 'g', 'h'], ['i', 'j', 'k', 'l']] 
+1

który nie jest kluczowy w ogóle, ale i tak genialny :) – bgusach

+0

Proste rzecz, ale nie wpadł na pomysł Tnq Alik :) – rajeshv90

+0

@ rajeshv90 'sort' teraz porównuje nie podlisty, ale ich długości (wartości' len (podlista) ') – Alik

1

mogą być wykonane przez

sorted(a,key = len) 
+0

musisz wyjaśnić, co robisz, to będzie OP – Hackaholic

Powiązane problemy