Dans ce didacticiel, vous apprendrez tout sur les dictionnaires Python; comment ils sont créés, accéder, ajouter, supprimer des éléments et diverses méthodes intégrées.
Vidéo: Dictionnaires Python pour stocker des paires clé / valeur
Le dictionnaire Python est une collection d'éléments non ordonnés. Chaque élément d'un dictionnaire a une key/value
paire.
Les dictionnaires sont optimisés pour récupérer des valeurs lorsque la clé est connue.
Créer un dictionnaire Python
La création d'un dictionnaire est aussi simple que de placer des éléments entre des accolades ()
séparées par des virgules.
Un élément a un key
et un correspondant value
qui est exprimé sous forme de paire ( clé: valeur ).
Alors que les valeurs peuvent être de n'importe quel type de données et peuvent se répéter, les clés doivent être de type immuable (chaîne, nombre ou tuple avec des éléments immuables) et doivent être uniques.
# empty dictionary my_dict = () # dictionary with integer keys my_dict = (1: 'apple', 2: 'ball') # dictionary with mixed keys my_dict = ('name': 'John', 1: (2, 4, 3)) # using dict() my_dict = dict((1:'apple', 2:'ball')) # from sequence having each item as a pair my_dict = dict(((1,'apple'), (2,'ball')))
Comme vous pouvez le voir ci-dessus, nous pouvons également créer un dictionnaire en utilisant la dict()
fonction intégrée.
Accès aux éléments à partir du dictionnaire
Alors que l'indexation est utilisée avec d'autres types de données pour accéder aux valeurs, un dictionnaire utilise keys
. Les clés peuvent être utilisées entre crochets ()
ou avec la get()
méthode.
Si nous utilisons les crochets ()
, KeyError
est levé au cas où une clé ne serait pas trouvée dans le dictionnaire. En revanche, la get()
méthode retourne None
si la clé n'est pas trouvée.
# get vs () for retrieving elements my_dict = ('name': 'Jack', 'age': 26) # Output: Jack print(my_dict('name')) # Output: 26 print(my_dict.get('age')) # Trying to access keys which doesn't exist throws error # Output None print(my_dict.get('address')) # KeyError print(my_dict('address'))
Production
Jack 26 Aucun Traceback (dernier appel le plus récent): Fichier "", ligne 15, en impression (my_dict ('address')) KeyError: 'address'
Modification et ajout d'éléments de dictionnaire
Les dictionnaires sont mutables. Nous pouvons ajouter de nouveaux éléments ou modifier la valeur d'éléments existants à l'aide d'un opérateur d'affectation.
Si la clé est déjà présente, la valeur existante est mise à jour. Si la clé n'est pas présente, une nouvelle paire ( clé: valeur ) est ajoutée au dictionnaire.
# Changing and adding Dictionary Elements my_dict = ('name': 'Jack', 'age': 26) # update value my_dict('age') = 27 #Output: ('age': 27, 'name': 'Jack') print(my_dict) # add item my_dict('address') = 'Downtown' # Output: ('address': 'Downtown', 'age': 27, 'name': 'Jack') print(my_dict)
Production
('name': 'Jack', 'age': 27) ('name': 'Jack', 'age': 27, 'address': 'Downtown')
Supprimer des éléments du dictionnaire
Nous pouvons supprimer un élément particulier d'un dictionnaire en utilisant la pop()
méthode. Cette méthode supprime un élément avec le fourni key
et retourne le value
.
La popitem()
méthode peut être utilisée pour supprimer et renvoyer une (key, value)
paire d'éléments arbitraires du dictionnaire. Tous les éléments peuvent être supprimés à la fois, en utilisant la clear()
méthode.
Nous pouvons également utiliser le del
mot - clé pour supprimer des éléments individuels ou le dictionnaire entier lui-même.
# Removing elements from a dictionary # create a dictionary squares = (1: 1, 2: 4, 3: 9, 4: 16, 5: 25) # remove a particular item, returns its value # Output: 16 print(squares.pop(4)) # Output: (1: 1, 2: 4, 3: 9, 5: 25) print(squares) # remove an arbitrary item, return (key,value) # Output: (5, 25) print(squares.popitem()) # Output: (1: 1, 2: 4, 3: 9) print(squares) # remove all items squares.clear() # Output: () print(squares) # delete the dictionary itself del squares # Throws Error print(squares)
Production
16 (1: 1, 2: 4, 3: 9, 5: 25) (5, 25) (1: 1, 2: 4, 3: 9) () Traceback (dernier appel en dernier): Fichier "", ligne 30, en caractères d'imprimerie (carrés) NameError: le nom 'carrés' n'est pas défini
Méthodes de dictionnaire Python
Les méthodes disponibles avec un dictionnaire sont présentées ci-dessous. Certains d'entre eux ont déjà été utilisés dans les exemples ci-dessus.
Méthode | La description |
---|---|
clair() | Supprime tous les éléments du dictionnaire. |
copie() | Renvoie une copie superficielle du dictionnaire. |
fromkeys (seq (, v)) | Renvoie un nouveau dictionnaire avec des clés de seq et une valeur égale à v (par défaut à None ). |
get (clé (, d)) | Renvoie la valeur de la clé. Si la clé n'existe pas, renvoie d (par défaut None ). |
articles() | Renvoie un nouvel objet des éléments du dictionnaire au format (clé, valeur). |
clés() | Renvoie un nouvel objet des clés du dictionnaire. |
pop (clé (, d)) | Supprime l'élément avec la clé et renvoie sa valeur ou d si la clé n'est pas trouvée. Si d n'est pas fourni et que la clé n'est pas trouvée, elle se lève KeyError . |
popitem () | Supprime et renvoie un élément arbitraire ( clé, valeur ). Se déclenche KeyError si le dictionnaire est vide. |
setdefault (clé (, d)) | Renvoie la valeur correspondante si la clé est dans le dictionnaire. Sinon, insère la clé avec une valeur de d et renvoie d (par défaut à None ). |
mise à jour ((autre)) | Met à jour le dictionnaire avec les paires clé / valeur d'autres clés, en écrasant les clés existantes. |
valeurs() | Renvoie un nouvel objet des valeurs du dictionnaire |
Voici quelques exemples de cas d'utilisation de ces méthodes.
# Dictionary Methods marks = ().fromkeys(('Math', 'English', 'Science'), 0) # Output: ('English': 0, 'Math': 0, 'Science': 0) print(marks) for item in marks.items(): print(item) # Output: ('English', 'Math', 'Science') print(list(sorted(marks.keys())))
Production
('Math': 0, 'English': 0, 'Science': 0) ('Math', 0) ('English', 0) ('Science', 0) ('English', 'Math', ' Science')
Compréhension du dictionnaire Python
La compréhension de dictionnaire est un moyen élégant et concis de créer un nouveau dictionnaire à partir d'un itérable en Python.
La compréhension du dictionnaire consiste en une paire d'expressions ( clé: valeur ) suivie d'une for
instruction entre accolades ()
.
Voici un exemple pour créer un dictionnaire avec chaque élément étant une paire d'un nombre et de son carré.
# Dictionary Comprehension squares = (x: x*x for x in range(6)) print(squares)
Production
(0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25)
Ce code équivaut à
squares = () for x in range(6): squares(x) = x*x print(squares)
Production
(0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25)
A dictionary comprehension can optionally contain more for or if statements.
An optional if
statement can filter out items to form the new dictionary.
Here are some examples to make a dictionary with only odd items.
# Dictionary Comprehension with if conditional odd_squares = (x: x*x for x in range(11) if x % 2 == 1) print(odd_squares)
Output
(1: 1, 3: 9, 5: 25, 7: 49, 9: 81)
To learn more dictionary comprehensions, visit Python Dictionary Comprehension.
Other Dictionary Operations
Dictionary Membership Test
We can test if a key
is in a dictionary or not using the keyword in
. Notice that the membership test is only for the keys
and not for the values
.
# Membership Test for Dictionary Keys squares = (1: 1, 3: 9, 5: 25, 7: 49, 9: 81) # Output: True print(1 in squares) # Output: True print(2 not in squares) # membership tests for key only not value # Output: False print(49 in squares)
Output
True True False
Iterating Through a Dictionary
We can iterate through each key in a dictionary using a for
loop.
# Iterating through a Dictionary squares = (1: 1, 3: 9, 5: 25, 7: 49, 9: 81) for i in squares: print(squares(i))
Output
1 9 25 49 81
Dictionary Built-in Functions
Fonctions intégrées comme all()
, any()
, len()
, cmp()
, sorted()
, etc. sont couramment utilisés avec des dictionnaires pour effectuer différentes tâches.
Fonction | La description |
---|---|
tout() | Retourne True si toutes les clés du dictionnaire sont vraies (ou si le dictionnaire est vide). |
tout() | Retourne True si une clé du dictionnaire est vraie. Si le dictionnaire est vide, retournez False . |
len () | Renvoie la longueur (le nombre d'éléments) dans le dictionnaire. |
cmp () | Compare les éléments de deux dictionnaires. (Non disponible dans Python 3) |
trié () | Renvoie une nouvelle liste triée de clés dans le dictionnaire. |
Voici quelques exemples qui utilisent des fonctions intégrées pour travailler avec un dictionnaire.
# Dictionary Built-in Functions squares = (0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81) # Output: False print(all(squares)) # Output: True print(any(squares)) # Output: 6 print(len(squares)) # Output: (0, 1, 3, 5, 7, 9) print(sorted(squares))
Production
Faux Vrai 6 (0, 1, 3, 5, 7, 9)