Nouveau : Datasets open source gratuits disponibles !Decouvrir →
🐍
Debutant 15 min Python

Les dictionnaires Python

Pourquoi dictionnaires Python ?

Les dictionnaires sont une structure de données fondamentale en Python, utilisée pour stocker et manipuler des données clé-valeur. Ils offrent un accès rapide et efficace aux éléments grâce à leurs clés uniques. Un cas concret est la gestion des données utilisateur sur un site web : chaque utilisateur peut être représenté par un dictionnaire avec des informations comme son nom, son email et ses préférences.

Prerequis

Concepts fondamentaux

Création d'un Dictionnaire

Un dictionnaire est créé en utilisant des accolades {}. Les éléments sont ajoutés sous forme de clé-valeur.

mon_dico = {}
## 
mon_dico = {'nom': 'Alice', 'age': 25, 'email': 'alice@example.com'}

Accès aux Éléments

Les éléments du dictionnaire sont accédés en utilisant leur clé.

age_alice = mon_dico['age']
print(age_alice)  # Output: 25
## ## 

Ajout et Modification d'Éléments

On peut ajouter de nouveaux éléments ou modifier les valeurs existantes en utilisant leur clé.

mon_dico['telephone'] = '123-456-7890'
## 
mon_dico['age'] = 26

Suppression d'Éléments

On peut supprimer des éléments en utilisant del ou la méthode pop().

del mon_dico['email']
## 
telephone_alice = mon_dico.pop('telephone')

Clés et Valeurs

On peut obtenir les clés et valeurs du dictionnaire en utilisant keys() et values().

les_clés = mon_dico.keys()
print(les_clés)  # Output: dict_keys(['nom', 'age'])
## 
les_valeurs = mon_dico.values()
print(les_valeurs)  # Output: dict_values(['Alice', 26])

Itération sur un Dictionnaire

On peut itérer sur un dictionnaire pour accéder à ses clés et/ou valeurs.

for cle in mon_dico:
    print(cle, mon_dico[cle])
## 
for cle, valeur in mon_dico.items():
    print(cle, valeur)

Mise en pratique : projet fil rouge

Mini-Projet : Gestionnaire de Tâches

Le but est de créer un simple gestionnaire de tâches qui permet d'ajouter, afficher et supprimer des tâches.

touch main.py

main.py

def ajouter_tache(taches, nom_tache):
    """Ajoute une nouvelle tâche au dictionnaire."""
    if nom_tache in taches:
        print(f"Tâche '{nom_tache}' déjà existe.")
    else:
        taches[nom_tache] = False
        print(f"Tâche '{nom_tache}' ajoutée.")

def afficher_taches(taches):
    """Affiche toutes les tâches."""
    if not taches:
        print("Aucune tâche n'est enregistrée.")
    else:
        for nom_tache, etat in taches.items():
            etat_str = "Terminée" if etat else "En cours"
            print(f"{nom_tache}: {etat_str}")

def supprimer_tache(taches, nom_tache):
    """Supprime une tâche."""
    if nom_tache not in taches:
        print(f"Tâche '{nom_tache}' non trouvée.")
    else:
        del taches[nom_tache]
        print(f"Tâche '{nom_tache}' supprimée.")

def main():
    taches = {}
    
    while True:
        action = input("Quelle action voulez-vous effectuer? (ajouter, afficher, supprimer, quitter): ")
        
        if action == 'ajouter':
            nom_tache = input("Entrez le nom de la tâche à ajouter: ")
            ajouter_tache(taches, nom_tache)
        elif action == 'afficher':
            afficher_taches(taches)
        elif action == 'supprimer':
            nom_tache = input("Entrez le nom de la tâche à supprimer: ")
            supprimer_tache(taches, nom_tache)
        elif action == 'quitter':
            break
        else:
            print("Action non reconnue. Veuillez choisir une action valide.")

if __name__ == "__main__":
    main()

Exécution du Projet

python main.py

Erreurs frequentes et debugging

  1. KeyError : Lorsqu'on tente d'accéder à une clé qui n'existe pas.

    # Mauvais
    valeur = mon_dico['non_existe']
    
    # Correct
    valeur = mon_dico.get('non_existe', 'Valeur par défaut')
    
  2. TypeError : Lorsqu'on tente d'accéder à une clé avec un type incorrect.

    # Mauvais
    valeur = mon_dico[123]  # Si la clé n'est pas une chaîne de caractères
    
    # Correct
    valeur = mon_dico[str(123)]
    
  3. SyntaxError : Lorsqu'on tente d'utiliser un dictionnaire sans accolades.

    # Mauvais
    mon_dico = 'nom': 'Alice', 'age': 25
    
    # Correct
    mon_dico = {'nom': 'Alice', 'age': 25}
    

Pour aller plus loin

  1. Dictionnaires imbriqués : Apprendre à stocker des dictionnaires dans des dictionnaires pour gérer des données complexes.

  2. Méthodes utiles : Explorer les méthodes copy(), fromkeys(), et update() pour manipuler les dictionnaires de manière plus efficace.

  3. Utiliser des dictionnaires comme des objets : En Python, les dictionnaires peuvent être utilisés comme des objets avec des méthodes et des propriétés personnalisées.

Défi Pratique

Créez un petit programme qui gère une bibliothèque. Chaque livre doit être représenté par un dictionnaire avec des informations comme le titre, l'auteur et le nombre d'exemplaires disponibles. Implémentez les fonctionnalités pour ajouter des livres, emprunter un livre, rendre un livre et afficher la liste des livres.

Besoin d'aide sur Python ?

Besoin d'aide sur un projet technique ? Decrivez-le pour des conseils personnalises.

Recevoir des conseils

Questions frequentes

Qu'est-ce qu'un dictionnaire Python ?
Un dictionnaire Python est une collection non ordonnée, modifiable et indexed d'éléments. Chaque élément est stocké sous forme de clé-valeur, ce qui permet un accès rapide aux éléments en utilisant la clé.
Comment créer un dictionnaire vide en Python ?
Pour créer un dictionnaire vide en Python, vous pouvez utiliser l'expression {} ou le constructeur dict(). Par exemple : my_dict = {} ou my_dict = dict().
Comment ajouter des éléments à un dictionnaire Python ?
Vous pouvez ajouter des éléments à un dictionnaire Python en utilisant la notation de clé-valeur. Par exemple, pour ajouter une clé 'nom' avec la valeur 'Alice', vous pouvez écrire : my_dict['nom'] = 'Alice'.

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.