Python: Les dictionnaires

Les dictionnaires sont une structure de données qui permet de stocker des paires clé-valeur, où chaque clé est unique et associée à une valeur. Si vous êtes débutant en programmation Python et fan de Donjons et Dragons (D&D), cet article est pour vous ! Nous allons explorer les dictionnaires à travers des exemples concrets inspirés de l'univers de D&D.

  • Exploration

Qu'est-ce qu'un Dictionnaire en Python ?

Un dictionnaire en Python est une collection non ordonnée de paires clé-valeur. Chaque clé dans un dictionnaire doit être unique et immuable (on ne peut pas changer le nom d'une clé), tandis que les valeurs peuvent être de n'importe quel type (ce sont des variables).

Création d'un Dictionnaire

Pour créer un dictionnaire, vous pouvez utiliser des accolades {} ou la fonction dict().

# Utilisation des accolades
personnage = {
    "nom": "Gandalf",
    "classe": "Magicien",
    "niveau": 5
}

# Utilisation de la fonction dict()
personnage = dict(nom="Gandalf", classe="Magicien", niveau=5)

Accès aux Valeurs

La syntaxe pour accéder aux valeurs d'un objet dict est très proche de celle utilisée pour accéder aux élements d'une liste, sauf qu'au lieu d'utiliser un index numérique (0,1...) on utilise une chaine de caractères.

Vous pouvez accéder aux valeurs d'un dictionnaire en utilisant les clés correspondantes.

nom = personnage["nom"]
classe = personnage["classe"]
niveau = personnage["niveau"]

print(f"Nom: {nom}, Classe: {classe}, Niveau: {niveau}")

Comapraison entre une liste et un dict

On peut s'imaginer une liste de cette manière:

Index Valeur
0 "Humain"
1 "Nain"
2 "Elf"

On peut s'imaginer un dict de cette manière:

Index Valeur
"nom" "Gandalf"
"classe" "Magicien"
"niveau" 5

Ajout et Modification de Paires Clé-Valeur

Vous pouvez ajouter de nouvelles paires clé-valeur ou modifier les valeurs de paires existantes simplement en utilisant la syntaxe de l'index.

# Ajout d'une nouvelle paire clé-valeur
personnage["race"] = "Maia"

# Modification d'une paire existante
personnage["niveau"] = 6

Suppression de Paires Clé-Valeur

Vous pouvez supprimer des paires clé-valeur avec la méthode del ou la méthode pop().

# Utilisation de del
del personnage["race"]

# Utilisation de pop()
niveau = personnage.pop("niveau")

Exemple Simple de Dictionnaire en Python avec Donjons et Dragons

Pour illustrer l'utilisation des dictionnaires en Python avec un exemple simple de Donjons et Dragons (D&D), nous allons créer un dictionnaire représentant un personnage de jeu avec des attributs de base.

Définition du Personnage

Imaginons un personnage nommé "Aragorn" avec les attributs suivants :

  • Nom
  • Classe
  • Race
  • Niveau
  • Points de Vie

Nous allons créer un dictionnaire pour représenter ce personnage.

# Création du dictionnaire pour le personnage
personnage = {
    "nom": "Aragorn",
    "classe": "Rôdeur",
    "race": "Humain",
    "niveau": 5,
    "points_de_vie": 68
}

# Affichage du dictionnaire
print(personnage)

Explication du Code

  1. Création du Dictionnaire:

    • Nous utilisons des accolades {} pour définir le dictionnaire.
    • Chaque paire clé-valeur est séparée par une virgule.
    • Les clés sont des chaînes de caractères (par exemple, "nom") et les valeurs peuvent être de n'importe quel type (chaînes de caractères, entiers, etc.).
  2. Affichage du Dictionnaire:

    • La fonction print(personnage) affiche le contenu du dictionnaire.

Accéder aux Valeurs du Dictionnaire

Pour accéder aux valeurs associées aux clés, vous pouvez utiliser la syntaxe de l'indexation.

# Accéder et afficher les valeurs des attributs du personnage
nom = personnage["nom"]
classe = personnage["classe"]
race = personnage["race"]
niveau = personnage["niveau"]
points_de_vie = personnage["points_de_vie"]

print(f"Nom: {nom}")
print(f"Classe: {classe}")
print(f"Race: {race}")
print(f"Niveau: {niveau}")
print(f"Points de Vie: {points_de_vie}")

Vous pouvez aussi utiliser cette syntaxe pour ne pas devoir créer de variables intermédiares:

# Accéder et afficher les valeurs des attributs du personnage
print(f"Nom: {personnage['nom']}")
print(f"Classe: {personnage['classe']}")
print(f"Race: {personnage['race']}")
print(f"Niveau: {personnage['niveau']}")
print(f"Points de Vie: {personnage['points_de_vie']}")

Ou, encore, sans utiliser les f-strings:

# Accéder et afficher les valeurs des attributs du personnage
print("Nom: " + personnage['nom'])
print("Classe: " + personnage['classe'])
print("Race: " + personnage['race'])
print("Niveau: " + str(personnage['niveau']))
print("Points de Vie: " + str(personnage['points_de_vie']))

Ajouter ou Modifier des Valeurs

Vous pouvez ajouter de nouveaux attributs ou modifier les attributs existants du personnage.

# Ajouter un nouvel attribut
personnage["arme"] = "Épée"

# Modifier un attribut existant
personnage["points_de_vie"] = 75

# Afficher le dictionnaire mis à jour
print(personnage)

Supprimer des Valeurs

Pour supprimer un attribut du personnage, utilisez le mot-clé del.

# Supprimer l'attribut "arme"
del personnage["arme"]

# Afficher le dictionnaire mis à jour
print(personnage)

Résumé

Voici le code complet avec des commentaires expliquant chaque étape :

# Création du dictionnaire pour le personnage
personnage = {
    "nom": "Aragorn",
    "classe": "Rôdeur",
    "race": "Humain",
    "niveau": 5,
    "points_de_vie": 68
}

# Affichage du dictionnaire
print(personnage)

# Accéder et afficher les valeurs des attributs du personnage
print("Nom: " + personnage['nom'])
print("Classe: " + personnage['classe'])
print("Race: " + personnage['race'])
print("Niveau: " + str(personnage['niveau']))
print("Points de Vie: " + str(personnage['points_de_vie']))

# Ajouter un nouvel attribut
personnage["arme"] = "Épée"

# Modifier un attribut existant
personnage["points_de_vie"] = 75

# Afficher le dictionnaire mis à jour
print(personnage)

# Supprimer l'attribut "arme"
del personnage["arme"]

# Afficher le dictionnaire mis à jour
print(personnage)

Conclusion

Les dictionnaires sont une structure de données extrêmement utile et polyvalente en Python. Ils vous permettent de stocker et de manipuler des données de manière efficace et intuitive. En utilisant des exemples issus du monde de Donjons et Dragons, nous avons exploré comment créer, accéder, modifier et supprimer des éléments dans un dictionnaire.

Que vous soyez en train de gérer des personnages, des monstres, ou tout autre type de données, les dictionnaires vous offrent une solution flexible pour organiser et manipuler vos informations. Commencez à les utiliser dans vos projets Python et découvrez toute leur puissance par vous-même !

Exercices

Exercice 1 : Créer un Dictionnaire

Objectif : Créer un dictionnaire simple représentant un livre avec les clés suivantes : titre, auteur, année.

Instruction :

Créez un dictionnaire nommé livre avec les clés "titre", "auteur", et "année", et assignez-lui les valeurs de votre choix.

# Votre code ici
livre = {
    "titre": "Le Seigneur des Anneaux",
    "auteur": "J.R.R. Tolkien",
    "annee": 1954
}

print(livre)

Exercice 2 : Accéder aux Valeurs

Objectif : Accéder aux valeurs d'un dictionnaire et les afficher.

Instruction :

Utilisez le dictionnaire livre de l'exercice précédent. Accédez et affichez les valeurs des clés "titre" et "auteur".

# Votre code ici
titre = livre["titre"]
auteur = livre["auteur"]

print(f"Titre: {titre}")
print(f"Auteur: {auteur}")

Exercice 3 : Ajouter une Nouvelle Clé-Valeur

Objectif : Ajouter une nouvelle paire clé-valeur à un dictionnaire existant.

Instruction :

Ajoutez une nouvelle clé "genre" au dictionnaire livre avec la valeur "Fantasy".

# Votre code ici
livre["genre"] = "Fantasy"

print(livre)

Exercice 4 : Modifier une Valeur

Objectif : Modifier la valeur associée à une clé dans un dictionnaire.

Instruction :

Modifiez la valeur de la clé "année" dans le dictionnaire livre pour qu'elle soit 1955.

# Votre code ici
livre["annee"] = 1955

print(livre)

Exercice 5 : Supprimer une Clé-Valeur

Objectif : Supprimer une paire clé-valeur d'un dictionnaire.

Instruction :

Supprimez la clé "genre" du dictionnaire livre.

# Votre code ici
del livre["genre"]

print(livre)

Pour aller plus loin