Python >> Tutoriel Python >  >> Python

Comment utiliser les dictionnaires Python :le guide LearnPython.coms

Vous vous demandez comment tirer le meilleur parti des dictionnaires Python ? Dans ce guide complet, nous couvrirons tout ce que vous devez savoir pour utiliser efficacement les dictionnaires dans vos études et dans des projets réels.

Qu'est-ce qu'un dictionnaire Python ?

Un dictionnaire Python est encore un autre type de données très utile et important. Fondamentalement, les dictionnaires Python sont une collection non ordonnée de valeurs de données. Cependant, contrairement aux autres types de données, les éléments d'un dictionnaire sont clé-valeur paires au lieu de valeurs de données uniques. Chacune de ces paires mappe la clé à la valeur associée. Par exemple, dans le dictionnaire ci-dessous, nous mappons les pays européens (les clés) à leurs capitales respectives (les valeurs).

Comme les listes Python, les dictionnaires Python :

  • Sont mutables et dynamiques , ce qui signifie que vous pouvez ajouter, supprimer et modifier leurs éléments.
  • Peut être imbriqué , ce qui signifie qu'un dictionnaire peut contenir un autre dictionnaire.

Contrairement aux listes, qui sont accessibles via l'indexation, les éléments du dictionnaire sont accessibles via des clés. Ainsi, il est important que les clés du dictionnaire Python sont uniques et d'un immuable type de données (par exemple entiers, chaînes, tuples). Dans le même temps, les valeurs de dictionnaire peuvent être de n'importe quel type de données, y compris des listes, des tuples et même d'autres dictionnaires.

Comment créer et accéder à un dictionnaire Python

Si vous souhaitez créer un dictionnaire Python vide, des accolades suffisent.

Si vous créez un dictionnaire Python avec certains éléments, vous devrez placer vos paires clé-valeur entre accolades. Utilisez deux-points (:) pour séparer une clé de la valeur correspondante et une virgule (,) pour séparer une paire d'une autre paire clé-valeur.

Vous pouvez également utiliser la fonction intégrée dict() pour créer un nouveau dictionnaire en Python. Voici un exemple de création d'un dictionnaire Python :

#Creating Python dictionaries
empty = {}
game_of_thrones = {'name':'Game of Thrones', 'genre':'fantasy', 'country':'USA', 'number of seasons':8}
gdp = dict({'indicator':'Nominal GDP', 1:'USA', 2:'China', 3:'Japan'})
print(empty)
print(game_of_thrones)
print(gdp)
{}
{'name': 'Game of Thrones', 'genre': 'fantasy', 'country': 'USA', 'number of seasons': 8}
{'indicator': 'Nominal GDP', 1: 'USA', 2: 'China', 3: 'Japan'}

Comme vous pouvez le voir dans l'exemple ci-dessus, où nous classons les pays en fonction de leur PIB nominal, c'est bien d'avoir des clés de différents types de données dans un dictionnaire tant que 1) toutes les clés sont uniques, et 2) toutes les clés sont des données immuables type.

Accéder aux éléments dans les dictionnaires Python est également simple - utilisez simplement la clé associée. Fondamentalement, il existe deux façons d'accéder à un élément du dictionnaire :

  1. Entourer une clé correspondante entre crochets .
  2. Utiliser le get() method . Cette approche est généralement préférée, car elle renvoie None au lieu de KeyError si la clé n'est pas trouvée dans le dictionnaire.

Voyons comment cela fonctionne.

#Accessing elements of a dictionary with square brackets
capitals = {'Belgium':'Brussels','France':'Paris', 'Germany':'Berlin', 'Italy':'Rome', 'Poland':'Warsaw'}
print(capitals['Belgium'])
print(capitals['Portugal'])
Brussels

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
 in ()
      2 capitals = {'Belgium':'Brussels','France':'Paris', 'Germany':'Berlin', 'Italy':'Rome', 'Poland':'Warsaw'}
      3 print(capitals['Belgium'])
----> 4 print(capitals['Portugal'])

KeyError: 'Portugal

#Accessing elements of a dictionary with the (get) method
capitals = {'Belgium':'Brussels','France':'Paris', 'Germany':'Berlin', 'Italy':'Rome', 'Poland':'Warsaw'}
print(capitals.get('Belgium'))
print(capitals.get('Portugal'))
Brussels
None

Comme prévu, l'utilisation d'une clé entre crochets fonctionne parfaitement lorsque la clé correspondante est présente dans le dictionnaire, mais renvoie une erreur si la clé est manquante. Le get() la méthode fonctionne bien dans les deux cas.

Comment modifier les dictionnaires Python

Comme nous l'avons déjà mentionné, les dictionnaires Python sont modifiables et dynamiques. Ainsi, vous pouvez mettre à jour les éléments du dictionnaire, ajouter de nouveaux éléments ou supprimer ceux qui existent déjà.

Pour mettre à jour un élément de dictionnaire , il suffit d'attribuer une nouvelle valeur à cet élément en s'y référant avec la clé associée.

#Updating dictionary
game_of_thrones = {'name':'Game of Thrones', 'genre':'fantasy', 'country':'USA', 'number of seasons':7}
game_of_thrones['number of seasons'] = 8
print(game_of_thrones)
{'name': 'Game of Thrones', 'genre': 'fantasy', 'country': 'USA', 'number of seasons': 8}

Remarquez comment nous avons mis à jour le nombre de saisons dans Game of Thrones série de "7" à "8" en attribuant simplement une nouvelle valeur à la touche correspondante.

En Python, ajout de nouvelles entrées à un dictionnaire est également assez facile. Il vous suffit de définir une valeur pour la nouvelle clé. Regardez l'exemple ci-dessous. En ajoutant la paire clé-valeur correspondante, nous ajoutons les informations que Game of Thrones La série a été créée à l'origine en anglais.

#Adding elements
game_of_thrones = {'name':'Game of Thrones', 'genre':'fantasy', 'country':'USA', 'number of seasons':8}
game_of_thrones['language'] = 'English'
print(game_of_thrones)
{'name': 'Game of Thrones', 'genre': 'fantasy', 'country': 'USA', 'number of seasons': 8, 'language': 'English'}

De plus, vous pouvez mettre à jour un dictionnaire Python avec les éléments d'un autre dictionnaire en utilisant le update() méthode.

#Merging dictionaries
game_of_thrones_1 = {'name':'Game of Thrones', 'genre':'fantasy', 'country':'USA', 'number of seasons':8}
game_of_thrones_2 = {'name':'Game of Thrones', 'genre':'serial drama', 'composer':'Ramin Djawadi', 'year':2011}
game_of_thrones_1.update(game_of_thrones_2)
print(game_of_thrones_1)
{'name': 'Game of Thrones', 'genre': 'serial drama', 'country': 'USA', 'number of seasons': 8, 'composer': 'Ramin Djawadi', 'year': 2011}

Comme vous pouvez le voir dans l'exemple, nous ajoutons essentiellement un dictionnaire Python à un autre . Cependant, notez que si la même paire clé-valeur est présente dans les deux dictionnaires, elle ne sera pas être dupliqué (c'est-à-dire le nom - "Game of Thrones "). Si les valeurs d'une même clé sont différentes, le dictionnaire mis à jour inclura la valeur du second dictionnaire (c'est-à-dire genre - "fantasy" deviendra genre - "série dramatique" ).

Pour supprimer certains éléments d'un dictionnaire, utilisez le del mot-clé et la clé associée à la valeur que vous souhaitez supprimer. Découvrez comment nous supprimons les informations de genre dans l'exemple ci-dessous :

#Removing elements
game_of_thrones = {'name':'Game of Thrones', 'genre':'fantasy', 'country':'USA', 'number of seasons':8, 'language':'English'}
print(game_of_thrones)
del game_of_thrones['genre']
print(game_of_thrones)
{'name': 'Game of Thrones', 'country': 'USA', 'number of seasons': 8, 'language': 'English'}

Si vous souhaitez supprimer tout le dictionnaire, vous avez essentiellement deux options :soit supprimer tous les éléments du dictionnaire, soit supprimer le dictionnaire lui-même. Pour supprimer les éléments d'un dictionnaire, utilisez le clear() méthode. Pour supprimer tout le dictionnaire, utilisez le del mot-clé.

#Removing all elements
game_of_thrones = {'name':'Game of Thrones', 'genre':'fantasy', 'country':'USA', 'number of seasons':8}
game_of_thrones.clear()
print(game_of_thrones)
{}

#Deleting the entire dictionary
game_of_thrones = {'name':'Game of Thrones', 'genre':'fantasy', 'country':'USA', 'number of seasons':8}
del game_of_thrones
print(game_of_thrones)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
 in ()
      2 game_of_thrones = {'name':'Game of Thrones', 'genre':'fantasy', 'country':'USA', 'number of seasons':8}
      3 del game_of_thrones
----> 4 print(game_of_thrones)

NameError: name 'game_of_thrones' is not defined

Notez que si vous supprimez tous les éléments du dictionnaire, celui-ci est toujours disponible (mais vide). Cependant, lorsque vous choisissez de supprimer tout le dictionnaire avec le del mot-clé, ce dictionnaire n'existe plus ; vous obtiendrez une erreur si vous essayez d'y accéder.

Plus de méthodes de dictionnaire Python intégrées

Enfin, passons en revue certaines des autres méthodes de dictionnaire intégrées très utiles de Python :

  • items() renvoie une liste de tuples avec les paires clé-valeur.
  • keys() renvoie une liste de toutes les clés du dictionnaire.
  • values() renvoie une liste de toutes les valeurs du dictionnaire.
game_of_thrones = {'name':'Game of Thrones', 'genre':'fantasy', 'country':'USA', 'number of seasons':8}
print('Items:', list(game_of_thrones.items()))
print('Keys:',list(game_of_thrones.keys()))
print('Values:',list(game_of_thrones.values()))
Items: [('name', 'Game of Thrones'), ('genre', 'fantasy'), ('country', 'USA'), ('number of seasons', 8)]
Keys: ['name', 'genre', 'country', 'number of seasons']
Values: ['Game of Thrones', 'fantasy', 'USA', 8]

Techniquement, les méthodes ci-dessus renvoient des objets de vue plutôt que des listes. Cependant, vous pouvez facilement transformer ces objets en listes avec le list() fonction.

  • pop() supprime une clé du dictionnaire et renvoie sa valeur.
  • popitem() supprime soit une paire clé-valeur aléatoire (dans les versions Python antérieures à 3.7) soit l'élément qui a été inséré en dernier dans le dictionnaire (dans les versions ultérieures) et renvoie cet élément sous forme de tuple.
game_of_thrones = {'name':'Game of Thrones', 'genre':'fantasy', 'country':'USA', 'number of seasons':8}
game_of_thrones.pop('country')
'USA'

game_of_thrones.popitem()
('number of seasons', 8)

print(game_of_thrones)
{'name': 'Game of Thrones', 'genre': 'fantasy'}

Notez comment nous avons supprimé deux paires clé-valeur de notre dictionnaire avec le pop() et popitem() méthodes.

  • copy() renvoie une copie superficielle du dictionnaire.
#Creating a copy of a dictionary
empty = {}
game_of_thrones = {'name':'Game of Thrones', 'genre':'fantasy', 'country':'USA', 'number of seasons':8}
copy_game_of_thrones = game_of_thrones.copy()
print('New copy;', copy_game_of_thrones)
game_of_thrones = {'name':'Game of Thrones', 'genre':'fantasy', 'country':'USA', 'number of seasons':8}

Pratiquer les dictionnaires Python

Maintenant que vous connaissez les bases des dictionnaires Python, il est temps de vous entraîner !

Suivez le cours Python Basics:Part 2 de LearnPython.com pour apprendre à utiliser efficacement les dictionnaires Python. Avec des dizaines d'exercices interactifs, vous apprendrez à :

  • Accéder, ajouter et supprimer des éléments d'un dictionnaire Python.
  • Utilisez l'opérateur IN.
  • Itérer sur les dictionnaires avec keys() , values() , et items() .
  • Utiliser des dictionnaires dans les fonctions.

Merci d'avoir lu et bon apprentissage !