NSI : Séance TC03 — Types Construits

Thème : Les Dictionnaires (Type dict)

1. Concept : De la Liste au Dictionnaire

Contrairement aux listes qui sont indexées par des entiers (0, 1, 2...), un dictionnaire utilise des clés (souvent des chaînes de caractères) pour stocker et retrouver des valeurs.

Liste (List)
Indice → Valeur
[0] : "Alice"
Dictionnaire (Dict)
Clé → Valeur
"nom" : "Alice"

2. Syntaxe et Opérations de base

# Création d'un dictionnaire
mon_dico = {"nom": "Alice", "note": 19}

# Accès à une valeur
print(mon_dico["nom"]) # Affiche Alice

# Ajout ou Modification
mon_dico["age"] = 16 # Ajoute une nouvelle clé
mon_dico["note"] = 20 # Modifie la valeur existante
del(mon_dico["note"]) # Supprime un couple cle: valeur

3. Récapitulatif des méthodes de parcours

Pour parcourir un dictionnaire avec une boucle for, on utilise des méthodes spécifiques :

Méthode Cible du parcours Exemple de syntaxe
.keys() Les clés uniquement for k in d.keys():
.values() Les valeurs uniquement for v in d.values():
.items() Les couples (clé, valeur) for k, v in d.items():

4. Algorithmes classiques

A. Recherche d'existence

On utilise l'opérateur in pour vérifier si une clé existe avant d'y accéder, évitant ainsi une erreur KeyError.

if "classe" in mon_dico:
    print("Clé trouvée !")

B. Calcul de fréquences (Analyse)

message = "nsi c'est super"
frequences = {} # Initialisation d'un dictionnaire vide

for lettre in message:
    if lettre in frequences:
        # Si la lettre existe déjà, on incrémente son compteur
        frequences[lettre] = frequences[lettre] + 1
    else:
        # Sinon, on crée la clé avec la valeur 1
        frequences[lettre] = 1

print(frequences)

C'est l'utilisation la plus fréquente en NSI : compter des occurrences dans un texte ou une liste de données.

5. Structures Complexes : Réseau & Objets

En projet, on utilise souvent une liste de dictionnaires pour représenter une base de données d'objets (utilisateurs, machines réseau, etc.) :

reseau = [
    {"nom": "SRV_1", "ip": "192.168.1.1"},
    {"nom": "PC_Alice", "ip": "192.168.1.50"}
]