Zastosowanie sorted()
z key
następująco -
>>> 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']]
W lambda
wraca czwarty element każdego z wewnętrznych listach i funkcja sorted
używa tego uporządkować te listy. Zakłada się, że int(elem)
nie zakończy się niepowodzeniem na liście.
Albo użyć itemgetter
(Jako komentarz Ashwini zwrócił uwagę, metoda ta nie będzie działać, jeśli masz reprezentacji ciągów z liczb, ponieważ są one skazane na niepowodzenie gdzieś numerów 2+ cyfr)
>>> 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']]
Chcesz sortować według drugiego elementu lub czwartego? – Taymon