Les ensembles et dictionnaires en Python

Python - Ensembles et dictionnairesNiveau : intermediate26 novembre 2025
Practicar con esta ficha
Crea tus flashcards, tus cuestionarios, tu examen de prueba

Funciones avanzadas disponibles en la aplicación

  • Imágenes
  • Fórmulas matemáticas
  • Diagramas con renderizado profesional y académico en la app
Comenzar gratis

Les ensembles et dictionnaires en Python

En Python, les collections permettent de regrouper plusieurs éléments. Après avoir étudié les listes et tuples, il est essentiel de maîtriser deux types de collections puissants et couramment utilisés : les ensembles (set) et les dictionnaires (dict). Ces structures diffèrent par leur organisation, leurs propriétés et leur mode d’accès aux éléments, offrant ainsi des outils adaptés à des besoins variés en programmation.


1. Les ensembles

1.1. Définition et propriétés

Un ensemble est une collection non ordonnée d’éléments hétérogènes, sans doublons. On peut créer un ensemble vide avec set() ou un ensemble avec des éléments listés entre accolades {}.

Exemples :

A = set()          # ensemble vide
B = {1, 3, 8}      # ensemble avec trois éléments
C = {"d", "a", "t", "d", "t", "A", "d"}  # doublons ignorés automatiquement

Dans l’ensemble C, les doublons sont éliminés, donc la taille réelle est inférieure au nombre d’éléments listés. La fonction len() permet de vérifier le nombre d’éléments.

Un ensemble est non indexable car ses éléments ne sont pas ordonnés : tenter d’accéder à A[0] provoque une erreur. Cependant, il est itérable, ce qui signifie qu’on peut parcourir ses éléments avec une boucle for sans garantie d’ordre :

S = {18, 5, "abc", 9, (10, 12)}
for x in S:
    print(x)

1.2. Opérations sur les ensembles

Les ensembles supportent les opérations classiques de la théorie des ensembles avec une syntaxe intuitive en Python (cf. tableau ci-dessous) :

OpérateurType renvoyéOpération mathématiqueNotation mathématique
x in AboolAppartenance(x \in A)
x not in AboolNon-appartenance(x \notin A)
A | BsetUnion(A \cup B)
A & BsetIntersection(A \cap B)
A - BsetDifférence(A \setminus B)
A ^ BsetDifférence symétrique(A \Delta B)
A == BboolÉgalité(A = B)
A != BboolNon-égalité(A \neq B)

Exemple :

A = {1, 2, 3, 4}
B = {3, 4, 5}

print(4 in A)    # True
print(A & B)     # {3, 4}
print(A | B)     # {1, 2, 3, 4, 5}
print(A ^ B)     # {1, 2, 5}

1.3. Méthodes pour modifier un ensemble

Les ensembles disposent de méthodes pour ajouter, retirer ou modifier leurs éléments (cf. tableau ci-dessous) :

MéthodeDescription
A.add(x)Ajoute l’élément x à l’ensemble A.
A.remove(x)Retire x de A. Provoque une erreur si x n’est pas dans A.
A.discard(x)Retire x de A. Ne provoque pas d’erreur si x n’est pas dans A.
A.pop()Retire et renvoie un élément arbitraire de A. Provoque une erreur si A est vide.
A.clear()Vide complètement l’ensemble A.
A.update(B)Ajoute à A tous les éléments de l’ensemble B.

La méthode pop() est utile pour parcourir un ensemble tout en le vidant progressivement :

while len(S) > 0:
    x = S.pop()
    # Traitement sur x
# S est maintenant vide

2. Les dictionnaires

2.1. Définition et propriétés

Un dictionnaire est une collection hétérogène d’éléments indexés non pas par des entiers consécutifs, mais par des clés arbitraires (chaînes, tuples, etc.). On crée un dictionnaire avec des paires clé: valeur entre accolades {}.

Exemples :

D1 = {0: "pierre", 8: "papier", -3: "ciseaux"}
D2 = {"first_name": "Camille", "last_name": "Dupont", "age": 32}

Chaque clé doit être unique : si une clé est répétée, la dernière valeur associée est conservée.

Un dictionnaire est indexable : on accède à une valeur avec D[key]. Par exemple :

print(D1[0])       # "pierre"
print(D2["age"])   # 32

Si une clé n’existe pas, une erreur est levée.

2.2. Itération sur un dictionnaire

Un dictionnaire est itérable sur ses clés par défaut. La syntaxe for x in D: parcourt toutes les clés du dictionnaire D. Depuis Python 3.7, l’ordre d’itération correspond à l’ordre d’insertion des éléments, ce qui facilite la prévisibilité du parcours.

Exemple :

data = {"first_name": "Camille", "last_name": "Dupont", "age": 32}
for x in data:
    val = data[x]
    print("Clé :", x, " Valeur associée :", val)

Méthodes d’itération spécifiques

Pour manipuler plus précisément les clés, valeurs ou paires, on utilise :

  • D.keys() : itère sur les clés,
  • D.values() : itère sur les valeurs,
  • D.items() : itère sur les paires (clé, valeur).

Exemple comparatif :

print(">> Méthode 'keys'")
for x in data.keys():
    print("x =", x)

print(">> Méthode 'values'")
for x in data.values():
    print("x =", x)

print(">> Méthode 'items'")
for x, y in data.items():
    print("x =", x, "y =", y)

2.3. Opérations sur un dictionnaire

Quelques opérations essentielles :

  • key in D : retourne True si la clé key est présente dans D,
  • key not in D : retourne True si la clé key est absente,
  • del D[key] : supprime la clé key et sa valeur associée.

Attention, ces opérateurs s’appliquent uniquement aux clés. Pour vérifier la présence d’une valeur, on utilisera in sur D.values().

2.4. Méthodes importantes du type dict

MéthodeDescription
D.get(key)Renvoie la valeur associée à key. Provoque une erreur si key n’existe pas.
D.get(key, default)Renvoie la valeur associée à key ou default si key est absente.
D.pop(key)Supprime et renvoie la valeur associée à key. Erreur si key absente.
D.pop(key, default)Supprime et renvoie la valeur associée ou default si absente.
D.clear()Vide complètement le dictionnaire.
D.update(D2)Ajoute ou remplace les paires (clé, valeur) de D2 dans D.

Ces méthodes permettent de gérer efficacement les contenus d’un dictionnaire.


3. Exercices pratiques

Exercice 6.2 : Création d’un dictionnaire à partir de deux listes

Écrire une fonction create_dict(keys, values) qui prend deux listes de même taille et retourne un dictionnaire associant chaque clé à sa valeur correspondante.

Exemple :

def create_dict(keys, values):
    return {k: v for k, v in zip(keys, values)}

# Test
print(create_dict(["a", "b", "c", "d", "e"], [8, 12, 3, 50, 37]))
# Résultat : {"a": 8, "b": 12, "c": 3, "d": 50, "e": 37}

Exercice 6.3 : Statistiques de fréquence dans une liste

Écrire une fonction stats(L) qui prend une liste L et renvoie un dictionnaire où :

  • les clés sont les valeurs présentes dans L,
  • les valeurs sont le nombre d’occurrences de chaque clé.

Il faut parcourir la liste et mettre à jour le dictionnaire sans utiliser la méthode count.

Exemple :

def stats(L):
    freq = {}
    for x in L:
        freq[x] = freq.get(x, 0) + 1
    return freq

# Test
print(stats(['d', 'a', 'a', 'e', 'c', 'b', 'e', 'd', 'e', 'a', 'a', 'a']))
# Résultat : {'d': 2, 'a': 5, 'e': 3, 'c': 1, 'b': 1}

Ces exercices illustrent la puissance des dictionnaires pour organiser et analyser des données.


4. Résumé visuel

4.1. Création et manipulation des ensembles et dictionnaires

[Diagramme]

4.2. Itération et opérations sur dictionnaires

[Diagramme]


Points clés à retenir

  • Ensembles (set) : collections non ordonnées, sans doublons, non indexables mais itérables, avec opérations classiques de théorie des ensembles et méthodes pour modifier leur contenu.
  • Dictionnaires (dict) : collections indexées par des clés arbitraires, indexables, itérables dans l’ordre d’insertion (depuis Python 3.7), avec de nombreuses méthodes pour accéder, modifier et gérer les paires clé-valeur.
  • La compréhension des méthodes d’itération (keys(), values(), items()) facilite la manipulation ciblée des dictionnaires.
  • Les dictionnaires sont particulièrement adaptés pour organiser et analyser des données, comme illustré par les exercices pratiques.

Cette fiche présente les bases essentielles pour manipuler efficacement les ensembles et dictionnaires en Python, deux outils incontournables pour la programmation moderne @docCh6.Ensembles et dictionnaires.pdf @docCh6.Ensembles et dictionnaires.pdf.

Agent CTA Background

Transforma tu forma de aprender

Comenzar ahoraÚnete a miles de estudiantes que ya han transformado su aprendizaje