119 votes

Trier les tuples en fonction du deuxième paramètre

J'ai une liste de tuples 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? Utilisation de Python 3.2.2 Si cela peut vous aider.

225voto

Sven Marnach Points 133943

Vous pouvez utiliser le key paramètre list.sort() :

 my_list.sort(key=lambda x: x[1])

ou, un peu plus vite,

 my_list.sort(key=operator.itemgetter(1))

(Comme pour tout module, vous aurez besoin de import operator pour pouvoir l'utiliser.)

16voto

Nde Samuel Mbah Points 444

Vous pouvez également appliquer la fonction sorted sur votre liste, qui renvoie une nouvelle liste triée. Ceci est juste un ajout à laréponse que Sven Marnach a donnée ci-dessus .

 # using *sort method*
mylist.sort(key=lambda x: x[1]) 

# using *sorted function*
l = sorted(mylist, key=lambda x: x[1]) 

-1voto

Darrell White Points 111
    def findMaxSales(listoftuples):
        newlist = []
        tuple = ()
        for item in listoftuples:
             movie = item[0]
             value = (item[1])
             tuple = value, movie

             newlist += [tuple]
             newlist.sort()
             highest = newlist[-1]
             result = highest[1]
       return result

             movieList = [("Finding Dory", 486), ("Captain America: Civil                      

             War", 408), ("Deadpool", 363), ("Zootopia", 341), ("Rogue One", 529), ("The  Secret Life of Pets", 368), ("Batman v Superman", 330), ("Sing", 268), ("Suicide Squad", 325), ("The Jungle Book", 364)]
             print(findMaxSales(movieList))

sortie -> Rogue One

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X