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: Dansjson.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.