web-dev-qa-db-fra.com

Trier les Tuples Python

J'ai une liste de tuples dans mon code python Blender

scores=[(1489,"Sean"), (2850,"Bob"), (276,"Crap Player"), (78495, "Great Player"), (8473, "Damian"), (4860, "Andy"), (0, "Stephen")]

J'essaie de les trier par leur score en utilisant ceci

sorted(scores, key=lambda score: score[0], reverse=True)

mais ça ne fonctionne pas. Je ne sais pas pourquoi. Des conseils?

J'ai envisagé une meilleure implémentation consiste à créer une nouvelle classe Score avec des champs name et score

MODIFIER:

Merci les gars pour la réponse rapide

cela ne me donnait aucune erreur avec la méthode sorted mais ne triait pas .J'ai utilisé la sort() et cela fonctionne.

Je pense que python est peut-être un peu bizarre dans Blender?

Merci!

18
Sean

Il suffit de faire:

print sorted(scores, reverse=True)
[(78495, 'Great Player'), (8473, 'Damian'), (4860, 'Andy'), (2850, 'Bob'), (1489, 'Sean'), (276, 'Crap Player'), (0, 'Stephen')]

vous pouvez utiliser scores.sort(reverse=True) si vous voulez trier à la place, et d'ailleurs la fonction de tri en cas de liste de Tuple par défaut trie par premier élément, deuxième élément.

31
mouad

sorted() renvoie la séquence triée. Si vous souhaitez trier une liste à la place, utilisez list.sort().

10
scores.sort(reverse=True)
>>> print scores
[(78495, 'Great Player'), (8473, 'Damian'), (4860, 'Andy'), (2850, 'Bob'), (1489, 'Sean'), (276, 'Crap Player'), (0, 'Stephen')]
0
simple_human