Python : Les dictionnaires

De www.yakakliker.org

Les dictionnaires sont déclarés en utilisant des accolades :

annuaire = {
    "clé1": 'valeur1',
    "clé2": 'valeur2',
}


Exemple :

annuaire = {
    "Jean Dupont": '0145854547',
    "Paul Joseph": '0145854547',
    "Stéphanie Leroux": '0458477854',
}


On accède ensuite aux valeurs en utilisant les clés avec des crochets :

annuaire = {
    "Jean Dupont": '0145854547',
    "Paul Joseph": '0145854547',
    "Stéphanie Leroux": '0458477854',
}
print(annuaire['Jean Dupont'])
print(annuaire['Paul Joseph'])


Nous pouvons stocker des objets imbriqués et y accéder sans problème :

personne = {
    'adresse': {
        'ville': 'Nice',
        'pays': 'France'
    }
}
print(personne['adresse']['ville'])  #  Nice
# Un dictionnaire utilise des accolades {}
invite = {
    "nom": "Alice",
    "age": 25,
    "est_present": True
}

# Accéder à une valeur via sa clé
print(invite["nom"])  # Affiche: Alice

Exemple d'un script plus complexe utilisant un dictionnaire :

import json  # Toujours en haut du fichier

def ajouter_invite(liste_invites):
    """Fonction pour ajouter un nom à la liste avec vérification."""
    nom = input("Entrez un nom (ou 'stop') : ").strip()

    if nom.lower() == "stop":
        return False

    if nom == "" or nom.isdigit():
        print("Erreur : Le nom ne peut pas être vide ou un simple nombre.")
    else:
        try:
            age = int(input(f"Âge de {nom} : "))
            nouvel_invite = {"nom": nom, "age": age}
            liste_invites.append(nouvel_invite)
            print("Invité enregistré.")
        except ValueError:
            print("Erreur : L'âge doit être un nombre entier.")

    return True

def sauvegarder_liste(liste_a_sauver, nom_fichier):
    """Enregistre la liste au format JSON."""
    try:
        with open(nom_fichier, "w", encoding="utf-8") as f:
            # On utilise le paramètre 'liste_a_sauver' et non la variable globale
            json.dump(liste_a_sauver, f, indent=4, ensure_ascii=False)
        print(f"Sauvegarde réussie dans {nom_fichier}")
    except Exception as e:
        print(f"Erreur lors de la sauvegarde : {e}")

# --- Programme principal ---
invites = []
en_cours = True

print("--- Gestionnaire d'invités Sécurisé ---")

while en_cours:
    try:
        en_cours = ajouter_invite(invites)
    except Exception as e:
        print(f"Une erreur inattendue est survenue : {e}")

print(f"\nListe finale ({len(invites)} personnes) :")
# Affichage plus propre pour des dictionnaires
for invite in invites:
    print(f"- {invite['nom']} ({invite['age']} ans)")

sauvegarder_liste(invites, "mes_invites.json")
  • ensure_ascii=False : Dans json.dump, cela permet de garder les accents (é, à, ç) lisibles directement dans le fichier JSON si vous l'ouvrez avec un bloc-notes.
  • Affichage final : Ajout d'une boucle for à la fin pour afficher proprement les données du dictionnaire plutôt que d'afficher le bloc de code brut.


compteur web gratuit sans pub