Usa sorted()
con un key
come segue -
>>> unsorted_list = [['a','b','c','5','d'],['e','f','g','3','h'],['i','j','k','4','m']]
>>> sorted(unsorted_list, key = lambda x: int(x[3]))
[['e', 'f', 'g', '3', 'h'], ['i', 'j', 'k', '4', 'm'], ['a', 'b', 'c', '5', 'd']]
I lambda
ritorna il quarto elemento di ciascuna delle liste interne e la funzione sorted
utilizza per ordinare quelli lista. Ciò presuppone che int(elem)
non fallirà per l'elenco.
Oppure utilizzare itemgetter
(come il commento di Ashwini ha sottolineato, questo metodo non funzionerebbe se si dispone di rappresentazioni di stringa di numeri, dal momento che sono destinati a fallire in qualche luogo per i numeri 2+ cifre)
>>> from operator import itemgetter
>>> sorted(unsorted_list, key = itemgetter(3))
[['e', 'f', 'g', '3', 'h'], ['i', 'j', 'k', '4', 'm'], ['a', 'b', 'c', '5', 'd']]
Volete ordinare dal secondo elemento, o il quarto? – Taymon