DEV Community

Cover image for Python : Manipulation des dictionnaires
 Eric Le Codeur
Eric Le Codeur

Posted on

Python : Manipulation des dictionnaires

Le cours accéléré Python est gratuit et sera publié ici sur dev.to. Je publierai un nouvel article tous les deux jours environ. Pour ne rien manquer, vous pouvez me suivre sur twitter : Suivez @EricLeCodeur

Type de variable : Dictionnaires

Les dictionnaires permettent de stocker plusieurs items dans une seule variable sous le format clé/valeur.

Un dictionnaire est très semblable à une List mais au lieu d'utiliser des index, on utilise des clés.

Par exemple, parfois nous aurions besoin d’une liste d’étudiant avec leur no, leur nom et leur âge. Pour ce faire nous pourrions utiliser une variable de type List que nous venons justement d’apprendre :

student = ["1020", "Mike Taylor", 17]

print(student)
# ["1020", "Mike Taylor", 17]
Enter fullscreen mode Exit fullscreen mode

Quoique cet exemple soit fonctionnel, il serait beaucoup plus simple et efficace si notre No d’étudiant pouvait être la clé d’accès.

Voici un exemple du résultat désirez. C’est-à-dire accéder à l’information à partir d’un nom de clé.

print(student["no"])
# 1020

print(student["name"])
# Mike Taylor

print(student["age"])
# 17
Enter fullscreen mode Exit fullscreen mode

Ce type de liste avec une clé personnalisée existe en Python sous le nom de Dictionary.

Créer un Dictionary

Voici comment déclarer un Dictionary on utilisant les accolades { }

student = {
    "no": 1020,
    "name": "Mike Taylor",
    "age": 17
}
Enter fullscreen mode Exit fullscreen mode

La structure d’un Dictionary est sous forme de clé/valeur. La syntaxe est la suivante : “nom de la clé”: valeur

"no": 1020
Enter fullscreen mode Exit fullscreen mode

Chaque clé/valeur est séparée par une virgule.

student = {
    "no": 1020,
    "name": "Mike Taylor",
    "age": 17
}
Enter fullscreen mode Exit fullscreen mode

Récupération

La récupération peut s’effectuer directement ou avec la fonction get()

Directement :

print(student["no"])

# KeyError: 'num'
Enter fullscreen mode Exit fullscreen mode

Si la clé n’existe pas, la syntaxe directe retourne une erreur “KeyError: 'num’” et du coup arrête l’exécution du code

Fonction get()

print(student.get("num"))

# None
Enter fullscreen mode Exit fullscreen mode

Si la clé n’existe pas, la fonction get() retourne la valeur “None” du coup le code continu son exécution.

Avec la fonction get() il est possible de retourner une valeur par défaut si la clé n’existe pas.

print(student.get("num", "no key"))

# no key
Enter fullscreen mode Exit fullscreen mode

Ajouter une clé/valeur

Pour ajouter une clé/valeur il suffit d’assigner :

student = {
    "no": 1020,
    "name": "Mike Taylor",
    "age": 17
}

student["city"] = "Paris"

print(student)
# {'no': 1020, 'name': 'Mike Taylor', 'age': 17, 'city': 'New York'}
Enter fullscreen mode Exit fullscreen mode

Effacer une clé/valeur

Pour effacer une clé/valeur du dictionnaire. Il suffit d'utiliser le mot-clé "del"

student = {
    "no": 1020,
    "name": "Mike Taylor",
    "age": 17
}

del student["age"]
print(student)
#{'no': 1020, 'name': 'Mike Taylor'}
Enter fullscreen mode Exit fullscreen mode

Boucle dans les items d’un Dictionary

Comme pour une List, il est possible de faire une boucle dans un Dictionary. Le seul truc c’est qu’il faut identifier à l’avance sur quoi nous voulons faire la boucle. Les clés ? Les valeurs ? Les deux ?

Boucle sur les clés. Pour ce faire il faut utiliser la fonction keys(). Cette fonction retourne une liste de toutes les clés du Dictionary

student = {
    "no": 1020,
    "name": "Mike Taylor",
    "age": 17
}

print(student.keys())
# dict_keys(['no', 'name', 'age'])
Enter fullscreen mode Exit fullscreen mode

Il sera donc possible de faire une boucle sur cette liste

student = {
    "no": 1020,
    "name": "Mike Taylor",
    "age": 17
}

for key in student.keys():
    print(key)

# no
# name
# age
Enter fullscreen mode Exit fullscreen mode

Boucle sur les valeurs. Même principe que pour les clés. Sauf cette fois il faut utiliser la fonction .values()

student = {
    "no": 1020,
    "name": "Mike Taylor",
    "age": 17
}

for value in student.values():
    print(value)

# 1020
# Mike Taylor
# 17
Enter fullscreen mode Exit fullscreen mode

Boucle sur clé et valeurs. Il faut utiliser la fonction items() qui fait deux retours soit la clé et la valeur.

student = {
    "no": 1020,
    "name": "Mike Taylor",
    "age": 17
}

for key, value in student.items():
    print(key, value)

# no 1020
# name Mike Taylor
# age 17
Enter fullscreen mode Exit fullscreen mode

List de Dictionary

Un pattern très populaire est de créer une List de Dictionary. Ce pattern ressemble beaucoup à table dans une base de données.

La List représente chaque ligne de la table et le Dictionary représente les colonnes de la table.

products = [
    {'id': 100, 'name': 'iPadPro'},
    {'id': 200, 'name': 'iPhone 12'},
    {'id': 300, 'name': 'Charger'},
]

print(products[0]['name']) # iPadPro
Enter fullscreen mode Exit fullscreen mode


`

Conclusion

C'est tout pour aujourd'hui, je publierai un nouvel article tous les deux jours environ. Pour être sûr de ne rien rater vous pouvez me suivre sur twitter : Suivre @EricLeCodeur

Top comments (0)