Najah.
Mon plan de révision⚡ Défi flash

Informatique · Classes prépa (CPGE) — 1ère année — ECS

Dictionnaires et ensembles

Le cours expliqué simplement, les questions que tous les élèves se posent et des exercices type examen national. Programme marocain, gratuit.

📘 Fiche de cours

L'essentiel du cours

  • Dictionnaires (dict) : Structure de données mutable stockant des paires clé: valeur. Les clés doivent être immuables (nombres, chaînes, tuples). Accès en $O(1)$ en moyenne.
  • Ensembles (set) : Collection non ordonnée d'éléments uniques. Ils ne supportent pas l'indexation. Utiles pour supprimer les doublons et tester l'appartenance.

Méthodes à maîtriser

  • Création : d = {"a": 1, "b": 2} ou s = {1, 2, 3}.
  • Accès : d["a"] pour obtenir 1.
  • Ajout/Modification : d["c"] = 3.
  • Suppression : del d["a"] ou s.remove(1).
  • Opérations sur ensembles : s1 | s2 (union), s1 & s2 (intersection), s1 - s2 (différence).

Exemples corrigés

  • Compter les occurrences : for x in liste: d[x] = d.get(x, 0) + 1.
  • Conversion : list(set(ma_liste)) pour éliminer les doublons.

Erreurs fréquentes

  • Utiliser une liste comme clé de dictionnaire (erreur TypeError).
  • Confondre {} (dictionnaire vide) et set() (ensemble vide).
  • Oublier que les dictionnaires ne sont pas ordonnés (avant Python 3.7).

🌉 Jisr : les mots du chapitre FR ⇄ AR

Tu as appris les sciences en arabe ? Touche un mot pour voir sa traduction et une explication en darija.

La question que tu n'oses pas poser en classe ? Pose-la à UstadZéro jugement, même en darija, même à minuit. Il t'explique pas à pas et corrige ta démarche. Gratuit.

Défi flash : 4 questions

Sans compte

🎯 Dictionnaires et ensembles

1/4

Quelle est la complexité moyenne pour accéder à une valeur via sa clé dans un dictionnaire ?

❓ Questions fréquentes

Est-ce qu'on peut avoir deux fois la même clé dans un dictionnaire ?

Non, un dictionnaire ne peut pas contenir deux fois la même clé. Si tu essaies d'assigner une valeur à une clé qui existe déjà, Python va simplement écraser l'ancienne valeur par la nouvelle.

💡 À retenir : Les clés sont uniques, elles servent d'identifiants.

Kifach n7seb ch7al mn element kayn f wahed l'ensemble bla ma n7seb les doublons ?

Sahl, ghir converti la liste dialek l'ensemble b set(), w sta3mel la fonction len(). Exemple : len(set(ma_liste)).

💡 À retenir : set() élimine automatiquement les doublons.

Pourquoi on dit que les clés doivent être immuables ?

Parce que Python utilise une fonction de hachage sur la clé pour trouver son emplacement mémoire. Si la clé changeait (comme une liste), son code de hachage changerait aussi, et on ne pourrait plus retrouver la valeur associée.

💡 À retenir : Clé = immuable (int, str, tuple).

Chno lfar9 bin d.get(k) w d[k] ila kan k ma-kaynach ?

d[k] va déclencher une erreur KeyError si la clé n'existe pas. Par contre, d.get(k) renvoie None (ou une valeur par défaut que tu précises) sans faire planter le programme.

💡 À retenir : Utilise .get() pour éviter les erreurs d'exécution.

Kifach n-parcourir un dictionnaire b-sor3a ?

Utilise la méthode .items() pour récupérer les couples clé-valeur en une seule boucle : for cle, valeur in d.items(): print(cle, valeur).

💡 À retenir : .items() est la méthode la plus efficace pour parcourir tout le dictionnaire.

Est-ce que l'ordre des éléments dans un set est garanti ?

Non, les ensembles ne sont pas ordonnés. Tu ne peux pas compter sur l'ordre d'insertion pour parcourir un ensemble.

💡 À retenir : Si l'ordre est important, utilise une liste ou un dictionnaire.

Chno l-fayda dial l-intersection f les ensembles ?

L'intersection permet de trouver rapidement les éléments communs entre deux collections. C'est beaucoup plus rapide que de faire des boucles imbriquées sur des listes.

💡 À retenir : s1 & s2 est très performant pour comparer des données.

Wach momkin n-stokiw dictionnaire f-west dictionnaire ?

Oui, c'est ce qu'on appelle un dictionnaire imbriqué. C'est très utile pour représenter des structures complexes comme des données JSON.

💡 À retenir : La valeur peut être n'importe quel type, y compris un autre dictionnaire.

Kifach n-supprimer un élément mn un ensemble ?

Tu as deux méthodes : s.remove(x) (qui lève une erreur si x n'existe pas) ou s.discard(x) (qui ne fait rien si x n'existe pas).

💡 À retenir : discard est plus sûr si tu n'es pas sûr de la présence de l'élément.

Est-ce que les dictionnaires sont plus rapides que les listes pour chercher un élément ?

Oui, pour chercher une clé, le dictionnaire est en $O(1)$ (temps constant), alors que pour une liste, c'est $O(n)$ (temps linéaire).

💡 À retenir : Utilise un dictionnaire si tu fais beaucoup de recherches par identifiant.

Kifach n-converti les clés d'un dictionnaire f-liste ?

Il suffit d'utiliser list(d.keys()).

💡 À retenir : d.keys() renvoie un objet vue, list() le transforme en liste classique.

Wach l'ensemble set kay-supporti les listes f-westo ?

Non, car une liste est mutable. Un ensemble ne peut contenir que des éléments immuables (hashables).

💡 À retenir : Si tu veux mettre une liste dans un ensemble, convertis-la d'abord en tuple.

✍️ Exercices type examen national

Exercice 1

Soit un dictionnaire notes = {"Ahmed": 15, "Sara": 18, "Ali": 12}. Écrire un script qui augmente la note de chaque élève de 1 point.

Voir la correction détaillée : inscription gratuite

Exercice 2

Écrire une fonction est_anagramme(mot1, mot2) qui retourne True si deux mots sont des anagrammes en utilisant les dictionnaires pour compter les lettres.

Voir la correction détaillée : inscription gratuite

Exercice 3

Soient deux ensembles A = {1, 2, 3, 4} et B = {3, 4, 5, 6}. Calculer l'union, l'intersection et la différence A - B en utilisant les opérateurs Python.

Voir la correction détaillée : inscription gratuite

Un prof de Informatique pour aller plus loin

Les cours du soir avec des profs vérifiés arrivent : inscris-toi pour être prévenu(e) en premier.

Être prévenu(e) gratuitement

Autres chapitres de Informatique