J'ai une liste de n-uplets qui ressemblent à ceci:
("Person 1",10)
("Person 2",8)
("Person 3",12)
("Person 4",20)
Ce que je veux produire, c’est la liste triée par ordre croissant, par la deuxième valeur du tuple. Donc, L [0] devrait être ("Person 2", 8)
après le tri.
Comment puis-je faire ceci? Utiliser Python 3.2.2 Si cela aide.
Vous pouvez utiliser le paramètre key
pour list.sort()
:
my_list.sort(key=lambda x: x[1])
ou légèrement plus vite
my_list.sort(key=operator.itemgetter(1))
(Comme pour tout module, vous aurez besoin de import operator
pour pouvoir l'utiliser.)
Et si vous utilisez python 3.X, vous pouvez appliquer la fonction sorted
à la liste mylist. Ceci est juste un ajout à la réponse donnée par @Sven Marnach ci-dessus.
# using *sort method*
mylist.sort(lambda x: x[1])
# using *sorted function*
sorted(mylist, key = lambda x: x[1])