Dictionnaire Python (avec exemples)

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/valuepaire.

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 keyet un correspondant valuequi 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 (), KeyErrorest levé au cas où une clé ne serait pas trouvée dans le dictionnaire. En revanche, la get()méthode retourne Nonesi 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 keyet 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 delmot - 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 KeyErrorsi 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 forinstruction 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 Truesi toutes les clés du dictionnaire sont vraies (ou si le dictionnaire est vide).
tout() Retourne Truesi 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)

Articles intéressants...