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, 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 vous aide.
Réponses:
Vous pouvez utiliser le
key
paramètre pourlist.sort()
:my_list.sort(key=lambda x: x[1])
ou, légèrement plus rapide,
my_list.sort(key=operator.itemgetter(1))
(Comme pour tout module, vous devrez
import operator
pouvoir l'utiliser.)la source
L.sort(key=operator.itemgetter(1))
dans mon code, mais j'obtiens une NameError, cet «opérateur» n'est pas défini. Dois-je importer quelque chose de spécial?import operator
pour utiliser la fonction. Si vous ajoutez cela à votre réponse, je le marquerai comme accepté.Et si vous utilisez python 3.X, vous pouvez appliquer la
sorted
fonction sur la mylist. Ceci n'est qu'un ajout à la réponse que @Sven Marnach a donnée ci-dessus.# using *sort method* mylist.sort(lambda x: x[1]) # using *sorted function* sorted(mylist, key = lambda x: x[1])
la source
sorted
placelist.sort
.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
la source