python version
Python 3.7.3 (default, Mar 28 2020, 17:59:31)
[Clang 9.1.0 (clang-902.0.39.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
La clé est à gauche et la valeur à droite.
dict = {"key1" : value, "key2": value2 }
À titre d'exemple, considérons un dictionnaire avec une correspondance biunivoque entre les noms de pays et la population.
>>> population
{'India': 1380004385, 'China': 1439323776, 'Pakistan': 220892340, 'UnitedStates': 331002651, 'Indonesia': 273523615}
Lorsque les 5 premiers pays avec la population sont classés de manière appropriée, il est nécessaire de trier par clé ou valeur, comme "Je veux trier par ordre alphabétique" et "Quel pays a la population la plus élevée?".
>>> population.items()
dict_items([('India', 1380004385), ('China', 1439323776), ('Pakistan', 220892340), ('UnitedStates', 331002651), ('Indonesia', 273523615)])
sorted Il existe deux types de tri, qu'il s'agisse de trier par clé ou par valeur.
#Trier les clés par ordre alphabétique
>>> sorted(population)
['China', 'India', 'Indonesia', 'Pakistan', 'UnitedStates']
#Ordre décroissant
>>> sorted(population, reverse=True)
['UnitedStates', 'Pakistan', 'Indonesia', 'India', 'China']
#Trier par ordre alphabétique et renvoyer chaque liste
>>> sorted(population.items())
[('China', 1439323776), ('India', 1380004385), ('Indonesia', 273523615), ('Pakistan', 220892340), ('UnitedStates', 331002651)]
#Trier par valeur uniquement (lors de l'ordre décroissant, inverser décrit plus loin=Utiliser l'option Vrai)
>>> sorted(population.values())
[220892340, 273523615, 331002651, 1380004385, 1439323776]
#Trier le dictionnaire par clé
>>> sorted(population.items(), key = lambda x : x[0])
[('China', 1439323776), ('India', 1380004385), ('Indonesia', 273523615), ('Pakistan', 220892340), ('UnitedStates', 331002651)]
#Trier par valeur dans le dictionnaire
>>> sorted(population.items(), key = lambda x : x[1])
[('Pakistan', 220892340), ('Indonesia', 273523615), ('UnitedStates', 331002651), ('India', 1380004385), ('China', 1439323776)]
Ensuite, considérons un type dans lequel la valeur du dictionnaire est une liste (dans cet exemple, la première composante est la population totale et la deuxième composante est le taux de changement annuel).
>>> population
{'India': [1380004385, 0.99], 'China': [1439323776, 0.39], 'Pakistan': [220892340, 2.0], 'UnitedStates': [331002651, 0.59], 'Indonesia': [273523615, 1.07]}
#Trier par clé de dictionnaire
>>> sorted(population.items(), key = lambda x : x[0] )
[('China', [1439323776, 0.39]), ('India', [1380004385, 0.99]), ('Indonesia', [273523615, 1.07]), ('Pakistan', [220892340, 2.0]), ('UnitedStates', [331002651, 0.59])]
#Trier par le premier composant de la valeur du dictionnaire
>>> sorted(population.items(), key = lambda x: x[1][0], reverse=True )
[('China', [1439323776, 0.39]), ('India', [1380004385, 0.99]), ('UnitedStates', [331002651, 0.59]), ('Indonesia', [273523615, 1.07]), ('Pakistan', [220892340, 2.0])]
## -->On peut voir que la population est la plus importante de l'ordre de la Chine, de l'Inde, des États-Unis, de l'Indonésie et du Pakistan.
#Trier par valeur de dictionnaire deuxième composant
>>> sorted(population.items(), key = lambda x: x[1][1], reverse=True )
[('Pakistan', [220892340, 2.0]), ('Indonesia', [273523615, 1.07]), ('India', [1380004385, 0.99]), ('UnitedStates', [331002651, 0.59]), ('China', [1439323776, 0.39])]
## -->On constate que le taux de croissance annuel est le plus élevé dans l’ordre du Pakistan, de l’Indonésie, de l’Inde, des États-Unis et de la Chine.
Les expressions lambda x [1] [0]
et x [1] [1]
peuvent être un peu déroutantes.
>>> population.items()
dict_items([('India', [1380004385, 0.99]), ('China', [1439323776, 0.39]), ('Pakistan', [220892340, 2.0]), ('UnitedStates', [331002651, 0.59]), ('Indonesia', [273523615, 1.07])])
Comme vous pouvez le voir, cela dit que la valeur du dictionnaire préparé par x [1]
est exprimée, puis la 0ème valeur de valeur est utilisée par x [1] [0]
. Il est.
Recommended Posts