Trier Les N-Uplets Python
J'ai une liste de tuples dans mon Blender python code
scores=[(1489,"Sean"), (2850,"Bob"), (276,"Crap Player"), (78495, "Great Player"), (8473, "Damian"), (4860, "Andy"), (0, "Stephen")]
Je suis en train de trier par leur score à l'aide de cette
sorted(scores, key=lambda score: score[0], reverse=True)
mais ce n'est pas de travail. Je n'ai aucune idée pourquoi. Des conseils à donner?
Que j'ai vu peut-être une meilleure mise en œuvre est de créer un nouveau Score
classe avec des champs name
et score
EDIT:
Les gars merci pour la réponse rapide
il me faisait pas d'erreurs avec la sorted
méthode, mais n'était pas le tri.
J'ai utilisé le sort()
et il fonctionne.
Je pense que python est juste un peu bizarre dans un Mélangeur, peut-être?
Merci!
- Votre code fonctionne très bien: codepad.org/6AT3rCw3
- En quoi est-il pas de travail?
- Vous n'avez probablement pas affecter le résultat de tri à une variable, mais ce que vous avez besoin est en fait
- Je pense que le titre est trompeur. Quand je l'ai vu j'ai bien l'OP voulez savoir comment trier un tuple, pas une liste de tuples.
Vous devez vous connecter pour publier un commentaire.
Viens de faire:
vous pouvez utiliser
scores.sort(reverse=True)
si vous souhaitez trier en place, et par la façon dont la fonction de tri dans le cas de la liste de tuple par défaut tri par le premier élément , le deuxième élément ..sorted
à pas trier par la touche 2nd (j'.e les noms des joueurs)? Docs disent quesorted
est garantie pour être stable, de sorte qu'il devrait être la préservation de l'ordre d'origine lorsque le 1ary clés comparés sont égaux, mais il ne le fait pas.key
fonction explicitement. Par exemple:sorted(scores, reverse=True, key=lambda s: s[0])
sorted()
renvoie la séquence triée. Si vous souhaitez trier une liste en place, puis utiliserlist.sort()
.