Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

Maîtriser les dictionnaires Python : création, manipulation et techniques avancées

Dictionnaire Python

Ce guide complet explique les dictionnaires Python — comment les créer, accéder, ajouter, supprimer des éléments et exploiter les méthodes intégrées.

Vidéo : Dictionnaires Python pour stocker des paires clé/valeur

Les dictionnaires Python sont des collections non ordonnées de paires clé/valeur. Chaque entrée associe une clé unique et immuable à une valeur qui peut être de n'importe quel type.


Créer un dictionnaire Python

Définir un dictionnaire est simple : placez des paires clé/valeur séparées par des virgules à l'intérieur d'accolades {}. Les clés doivent être immuables (chaînes, nombres, ou tuples d'éléments immuables) et uniques ; les valeurs peuvent être de n'importe quel type et peuvent se répéter.

# dictionnaire vide
my_dict = {}
# dictionnaire avec clés entières
my_dict = {1: 'pomme', 2: 'balle'}
# dictionnaire avec clés mixtes
my_dict = {'nom': 'Jean', 1: [2, 4, 3]}
# utilisant dict()
my_dict = dict({1:'pomme', 2:'balle'})
# depuis une séquence de paires
my_dict = dict([(1,'pomme'), (2,'balle')])

Toutes les approches ci-dessus créent la même structure de dictionnaire.


Accéder aux éléments d'un dictionnaire

Les valeurs des dictionnaires sont récupérées via leurs clés, soit avec des crochets [] soit avec la méthode get(). L'utilisation de crochets lève une KeyError si la clé est absente ; get() retourne None par défaut.

# get vs [] pour récupérer des éléments
my_dict = {'nom': 'Jack', 'age': 26}
# Sortie : Jack
print(my_dict['nom'])
# Sortie : 26
print(my_dict.get('age'))
# Essayer d'accéder à une clé manquante retourne None
print(my_dict.get('adresse'))
# KeyError
print(my_dict['adresse'])

Sortie

Jack 26 None Traceback (most recent call last): File "<string>", line 15, in <module> print(my_dict['adresse']) KeyError: 'adresse'

Modifier et ajouter des éléments de dictionnaire

Les dictionnaires sont mutables. Assigner à une clé existante met à jour sa valeur ; assigner à une nouvelle clé ajoute une nouvelle entrée.

# Modification et ajout d'éléments de dictionnaire
my_dict = {'nom': 'Jack', 'age': 26}
# mettre à jour la valeur
my_dict['age'] = 27
# Sortie : {'age': 27, 'nom': 'Jack'}
print(my_dict)
# ajouter un élément
my_dict['adresse'] = 'Centre-ville'
# Sortie : {'adresse': 'Centre-ville', 'age': 27, 'nom': 'Jack'}
print(my_dict)

Sortie

{'nom': 'Jack', 'age': 27} {'nom': 'Jack', 'age': 27, 'adresse': 'Centre-ville'}

Supprimer des éléments d'un dictionnaire

Utilisez pop() pour supprimer une clé spécifique et récupérer sa valeur. popitem() supprime un couple arbitraire, tandis que clear() efface tout le dictionnaire. Le mot-clé del peut supprimer des entrées individuelles ou la variable entière.

# Suppression d'éléments d'un dictionnaire
# créer un dictionnaire
carres = {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
# supprimer un élément particulier, retourne sa valeur
# Sortie : 16
print(carres.pop(4))
# Sortie : {1: 1, 2: 4, 3: 9, 5: 25}
print(carres)
# supprimer un élément arbitraire, retourner (clé,valeur)
# Sortie : (5, 25)
print(carres.popitem())
# Sortie : {1: 1, 2: 4, 3: 9}
print(carres)
# supprimer tous les éléments
carres.clear()
# Sortie : {}
print(carres)
# supprimer le dictionnaire lui-même
del carres
# Lève une erreur
print(carres)

Sortie

16 {1: 1, 2: 4, 3: 9, 5: 25} (5, 25) {1: 1, 2: 4, 3: 9} {} Traceback (most recent call last): File "<string>", line 30, in <module> print(carres) NameError: name 'carres' is not defined

Méthodes des dictionnaires Python

Le tableau ci-dessous liste les méthodes courantes des dictionnaires et leurs utilisations. Beaucoup sont démontrées dans les exemples qui suivent.

MéthodeDescription
clear()Supprime tous les éléments du dictionnaire.
copy()Retourne une copie superficielle du dictionnaire.
fromkeys(seq[, v])Crée un nouveau dictionnaire depuis seq avec chaque clé définie à v (défaut None).
get(key[,d])Retourne la valeur pour key ; si absente, retourne d (défaut None).
items()Retourne une vue des paires (clé, valeur) du dictionnaire.
keys()Retourne une vue des clés du dictionnaire.
pop(key[,d])Supprime key et retourne sa valeur ou d ; lève KeyError si key manque et d n'est pas fourni.
popitem()Supprime et retourne un couple (clé, valeur) arbitraire ; lève KeyError si le dictionnaire est vide.
setdefault(key[,d])Retourne la valeur pour key ; si absente, insère key avec valeur d (défaut None) et retourne d.
update([other])Insère ou met à jour les paires clé/valeur depuis other, écrasant les clés existantes.
values()Retourne une vue des valeurs du dictionnaire.

Exemple d'utilisation :

# Méthodes de dictionnaire
notes = {}.fromkeys(['Math', 'Anglais', 'Sciences'], 0)
# Sortie : {'Anglais': 0, 'Math': 0, 'Sciences': 0}
print(notes)
for item in notes.items():
    print(item)
# Sortie : ['Anglais', 'Math', 'Sciences']
print(list(sorted(notes.keys())))

Sortie

{'Math': 0, 'Anglais': 0, 'Sciences': 0} ('Math', 0) ('Anglais', 0) ('Sciences', 0) ['Anglais', 'Math', 'Sciences']

Compréhension de dictionnaire Python

La compréhension de dictionnaire offre une syntaxe concise pour construire des dictionnaires depuis des itérables. Elle suit le motif {clé: valeur for élément in itérable}.

# Compréhension de dictionnaire
carres = {x: x*x for x in range(6)}
print(carres)

Sortie

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Version impérative équivalente :

carres = {}
for x in range(6):
    carres[x] = x*x
print(carres)

Sortie

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Les compréhensions peuvent inclure plusieurs boucles et des filtres if. Exemple : seulement les carrés impairs.

# Compréhension de dictionnaire avec condition if
carres_impairs = {x: x*x for x in range(11) if x % 2 == 1}
print(carres_impairs)

Sortie

{1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

Pour plus sur les compréhensions de dictionnaire, voir Compréhension de dictionnaire Python.


Autres opérations sur les dictionnaires

Test d'appartenance aux dictionnaires

Utilisez l'opérateur in pour vérifier si une clé existe ; il n'inspecte pas les valeurs.

# Test d'appartenance pour les clés de dictionnaire
carres = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# Sortie : True
print(1 in carres)
# Sortie : True
print(2 not in carres)
# les tests d'appartenance sont pour les clés seulement, pas les valeurs
# Sortie : False
print(49 in carres)

Sortie

True True False

Itérer sur un dictionnaire

Itérez sur les clés directement, puis accédez aux valeurs.

# Itération sur un dictionnaire
carres = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
for i in carres:
    print(carres[i])

Sortie

1 9 25 49 81

Fonctions intégrées pour dictionnaires

Des fonctions standard telles que all(), any(), len() et sorted() sont fréquemment appliquées aux dictionnaires.

FonctionDescription
all()True si chaque clé évalue à True (ou si le dictionnaire est vide).
any()True si une clé évalue à True ; False pour un dictionnaire vide.
len()Nombre de paires clé/valeur.
cmp()Compare deux dictionnaires (supprimé en Python 3).
sorted()Retourne une liste triée des clés.

Exemples :

# Fonctions intégrées pour dictionnaires
carres = {0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# Sortie : False
print(all(carres))
# Sortie : True
print(any(carres))
# Sortie : 6
print(len(carres))
# Sortie : [0, 1, 3, 5, 7, 9]
print(sorted(carres))

Sortie

False True 6 [0, 1, 3, 5, 7, 9]

Python

  1. Maîtriser les types de données Python : Guide pratique
  2. Maîtriser les opérateurs Python : Guide complet
  3. Maîtriser l'instruction pass en Python : Guide pratique
  4. Maîtriser les arguments de fonctions Python : Positionnels, nommés et paramètres par défaut
  5. Maîtriser les itérateurs Python : fonctionnement et création des vôtres
  6. Les fermetures Python expliquées : comment les fonctions imbriquées capturent les variables
  7. Maîtriser Python datetime : guide pratique pour les dates, heures et fuseaux horaires
  8. Python : Aperçu - Langage de haut niveau, lisible, interactif et orienté objet
  9. Nombres Python : Comprendre les types de données numériques immuables