Comment trier une liste de tableaux 2D, de dictionnaires et de classes propriétaires

Tri d'un tableau à deux dimensions

>>> hoge = [[10,4],[4,9],[5,0],[4,5],[2,0],[3,5]]
>>> sorted(hoge)
[[2, 0], [3, 5], [4, 5], [4, 9], [5, 0], [10, 4]]
>>> sorted(hoge, key=lambda x:x[1])
[[5, 0], [2, 0], [10, 4], [4, 5], [3, 5], [4, 9]]    #Trier par deuxième élément
>>> hoge
[[10, 4], [4, 9], [5, 0], [4, 5], [2, 0], [3, 5]]    #Trié ne modifie pas la séquence d'origine
>>> hoge.sort(key=lambda x:x[0])
>>> hoge
[[2, 0], [3, 5], [4, 9], [4, 5], [5, 0], [10, 4]]    #Tri par le premier élément[4, 9], [4, 5]L'ordre de
>>> hoge.sort()
>>> hoge
[[2, 0], [3, 5], [4, 5], [4, 9], [5, 0], [10, 4]]    #Si vous triez par tous les éléments[4, 5], [4, 9]L'ordre de

Trier le dictionnaire par clé

>>> d = {'Yamada': 100, 'Sato': 50, 'Kobayashi': 75}
>>> sorted( d.items() )
[('Kobayashi', 75), ('Sato', 50), ('Yamada', 100)]

Trier le dictionnaire par valeur

>>> sorted(d.items(), key=lambda x:x[1])
[('Sato', 50), ('Kobayashi', 75), ('Yamada', 100)]

Trier la liste de vos propres classes

Préparation

>>> class Seiseki:
...     def __init__(self, name, tensu):
...             self.name = name
...             self.tensu = tensu
...     def output(self):
...             print("Name:{0}, Tensu:{1}".format(self.name, self.tensu))
... 
>>> ll = [Seiseki('Yamada', 100), Seiseki('Sato', 50), Seiseki('Kobayashi', 75)]
>>> for l in ll:
...     l.output()

Name:Yamada, Tensu:100
Name:Sato, Tensu:50
Name:Kobayashi, Tensu:75

sort by name

>>> ll.sort(key=lambda x: x.name)
>>> for l in ll:
...     l.output()
... 
Name:Kobayashi, Tensu:75
Name:Sato, Tensu:50
Name:Yamada, Tensu:100

sort by tensu

>>> ll.sort(key=lambda x: x.tensu)
>>> for l in ll:
...     l.output()
... 
Name:Sato, Tensu:50
Name:Kobayashi, Tensu:75
Name:Yamada, Tensu:100

Recommended Posts

Comment trier une liste de tableaux 2D, de dictionnaires et de classes propriétaires
[python] Résumé de la récupération des listes et des éléments du dictionnaire
[Super facile! ] Comment afficher le contenu des dictionnaires et des listes incluant le japonais en Python
À propos de l'attribution cumulative de la liste et du tableau numpy
[Python] Comment trier un dict dans une liste et une instance dans une liste
Enregistrer des listes, des dictionnaires et des taples dans des fichiers externes python
Les étrangers parlent: Comment nommer les classes et les méthodes en anglais
[Python] Résumé de l'utilisation des fonctions de fractionnement et de jointure
Comparaison de l'utilisation des fonctions d'ordre supérieur dans Python 2 et 3
[Introduction to Data Scientists] Bases de Python ♬ Fonctions et classes
Introduction de DataLiner ver.1.3 et comment utiliser Union Append
Vue d'ensemble de l'environnement virtuel Python et comment le créer
python> Gestion des tableaux 2D
Différenciation du tri et généralisation du tri
Présentation de la création d'un socket serveur et de la création d'un socket client
Comment comparer des listes et récupérer des éléments communs dans une liste
[Python] Comment obtenir le premier et le dernier jour du mois
J'ai résumé comment changer les paramètres de démarrage de GRUB et GRUB2
Résumé de l'utilisation de pandas.DataFrame.loc
Comment utiliser les classes dans Theano
Résumé de l'utilisation de pyenv-virtualenv
Comment installer et configurer Blackbird
Comment utiliser .bash_profile et .bashrc
Comment installer et utiliser Graphviz
Résumé de l'utilisation de csvkit
Résoudre des puzzles et 15 puzzles
[Python] Comment spécifier la position d'affichage de la fenêtre et la taille de matplotlib
Je souhaite trier une liste dans l'ordre des autres listes
Introduction du cadre de cybersécurité "MITRE CALDERA": utilisation et formation
[Python --open3d] Comment convertir des données d'obj de modèle 3D en nuage de points