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!
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.
sorted()
renvoie la séquence triée. Si vous souhaitez trier une liste à la place, utilisez list.sort()
.
scores.sort(reverse=True)
>>> print scores
[(78495, 'Great Player'), (8473, 'Damian'), (4860, 'Andy'), (2850, 'Bob'), (1489, 'Sean'), (276, 'Crap Player'), (0, 'Stephen')]