Votre question

[Python] Classer un liste d'objets en fct d'un attribut

Tags :
  • Fct
  • Programmation
Dernière réponse : dans Programmation
9 Juillet 2009 19:35:48

Bonjour à vous, comme je l'ai dit dans mon précédent sujet ([Python] Modifier un dictionnaire à l'aide d'une boucleICI), j'essaie de créer un petit Tactic RPG.

Voilà, donc ce que je pensais faire, au point de vue du stockage des informations, c'est de faire une liste avec chaque personnage jouable et une avec chaque personnage non-jouable. Ensuite, si le joueur veut choisir son équipe pour le prochain combat, il en choisit six parmi les possibilités.

Maintenant, je voyais chaque personnage jouable comme un objet de ma classe PJ, stocké dans la liste.

Le problème, c'est que je veux classer au choix les personnages par

Nom (alphabétique), Classe (Je parle de classe de personnage, ex: voleur, mage, guerrier), Race, Niveau, Numéro


Maintenant imaginons que je veuille classer les valeurs de ma liste de personnages joueurs en fonction des valeurs d'attributs des objets composant cette liste.

Existe-il une façon rapide de le faire, ou dois je créer une seconde liste et parcourir la première en ajoutant un à un les éléments de la première dans la deuxième ?

Autres pages sur : python classer liste objets fct attribut

a b L Programmation
9 Juillet 2009 20:54:24

Après avoir fait un "import operator", il suffit de faire:

  1. taListe.sort(key=operator.attrgetter('nom_de_ton_attribut'))

"taListe" étant une simple liste d'objets de ta classe contenant les attributs "nom_de_ton_attribut".
9 Juillet 2009 23:53:06

Merci beaucoup CRicky pour cette réponse rapide. Je vais essayer ça en soirée mais je suis certain que ça va fonctionner impeccablement. :D 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS