[Python] Comment trier les instances par variables d'instance

Non limité à Python, lors de l'écriture d'un programme, il existe de nombreuses possibilités de trier des listes (tableaux) et des dictionnaires. Et bon nombre de ces méthodes sont présentées dans les articles de blog, etc.

Cependant, moins souvent que les listes et les dictionnaires, vous souhaitez parfois trier une liste d'instances par variables d'instance. Par exemple, si vous avez une classe appelée «Student» comme celle ci-dessous, vous pouvez trier la liste des instances nommées «étudiants» par «score».

class Student:
    def __init__(self, name, score):
        self.name = name
        self.score = score

a = Student('Taro', 70)
b = Student('Hanako', 90)
c = Student('Jiro', 80)
students = [a, b, c]

Dans un tel cas, si vous utilisez la fonction operator.attrgetter, vous pouvez utiliser quelques lignes (presque une ligne) comme suit. Peut écrire.

from operator import attrgetter
students.sort(key=attrgetter('score'))
for s in students:
    print(s.name, s.score)
Taro 70
Jiro 80
Hanako 90

Si vous souhaitez trier par ordre décroissant, définissez simplement l'argument de la méthode sort`` reverse sur True comme suit:

from operator import attrgetter
students.sort(key=attrgetter('score'), reverse=True)
for s in students:
    print(s.name, s.score)
Hanako 90
Jiro 80
Taro 70

Recommended Posts

[Python] Comment trier les instances par variables d'instance
[Python] Comment trier les instances par variables d'instance
[Python] Comment trier un dict dans une liste et une instance dans une liste
Comment définir dynamiquement des variables en Python
Comment installer Python
Comment trier en spécifiant une colonne dans le tableau Python Numpy.
[python] Comment trier par le Nth Mth élément d'un tableau multidimensionnel
[Python] Comment développer des variables dans une chaîne de caractères
Comment enregistrer une table récupérée par python en csv
Comment installer Python [Windows]
python3: Comment utiliser la bouteille (2)
Comment mettre à jour Tkinter de Python vers la version 8.6
Comment utiliser Python Argparse
Variables de classe et d'instance Python
[Python] Comment utiliser checkio
Comment définir les variables Go
Comment exécuter Notepad ++ Python
Comment changer la version de Python
Comment développer en Python
[python] Comment juger scalaire
[Python] Comment utiliser input ()
Comment utiliser Python lambda
[Python] Comment utiliser virtualenv
python3: Comment utiliser la bouteille (3)
python3: Comment utiliser la bouteille
Trier par date en python
Comment utiliser les octets Python
[Python] Comment créer une liste de chaînes de caractères caractère par caractère
Comment changer le fichier de configuration pour qu'il soit lu par Python
[Python] Comment jouer avec les variables de classe avec décorateur et métaclasse
Comment définir plusieurs variables dans une instruction Python for
Comment remplacer une méthode de type défini par l'utilisateur générée par python swig
Comment installer Python à l'aide d'Anaconda
[Python] Comment faire PCA avec Python
[Python] Tri itérable selon plusieurs conditions
[Python] Comment dériver nCk (ABC156-D)
[Python] Comment utiliser la série Pandas
Comment collecter des images en Python
Comment utiliser les requêtes (bibliothèque Python)
Comment utiliser SQLite en Python
[Introduction à Python] Comment analyser JSON
Comment obtenir la version Python
Comment démarrer avec Python
[Python] Comment utiliser la liste 3 Ajouté
Comment utiliser Mysql avec python
Comment utiliser l'API Python d'OpenPose
[Python] Comment permuter les valeurs de tableau
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
Python: Comment utiliser pydub (lecture)
Comment utiliser PubChem avec Python
Comment accélérer les calculs Python
Comment calculer la date avec python
Comment accéder à wikipedia depuis python
Comment utiliser la fonction zip de python
[Nanonets] Comment publier un mémo [Python]
Comment gérer le japonais avec Python