Maîtrise des structures dict et set dans Python

1. Introduction aux dictionnaires

En Python, les listes et tuples permettent de stocker des séquences ordonnées, comme des noms d'élèves ou des notes d'examen. Cependant, pour associer des noms à des valeurs correspondantes, comme des notes, ces structures deviennent pratiques. Un dictionnaire (dict) établit un mappage clé-valeur, permettant une recherche rapide par clé.

Par exemple, pour représenter les notes de plusieurs élèves :

resultats = {
    'Alice': 89,
    'Hugo': 72,
    'Léa': 95
}

Ici, les noms sont les clés et les notes les valeurs. La taille d'un dictionnaire peut être obtenue avec len() :

>>> len(resultats)
3

2. Accéder aux valeurs d'un dictionnaire

Pour récupérer la note d'un élève, utilisez la clé entre crochets. Si la clé n'existe pas, une exception KeyError est levée :

>>> print(resultats['Alice'])
89
>>> print(resultats['Paul'])
Traceback (most recent call last):
KeyError: 'Paul'

Pour éviter cette erreur, deux méthodes sont courantes. Premièrement, vérifier l'existence de la clé avec in :

if 'Paul' in resultats:
    print(resultats['Paul'])

Deuxièmement, utiliser la méthode get(), qui retourne None si la clé est absente :

>>> print(resultats.get('Hugo'))
72
>>> print(resultats.get('Paul'))
None

3. Propriétés des dictionnaires

Les dictionnaires offrent une recherche rapide, quelle que soit leur taille, mais consomment plus de mémoire que les listes. Les clés doivent être uniques et non modifiables (comme des chaînes, entiers ou tuples). Les paires clé-valeur n'ont pas d'ordre défini :

>>> print(resultats)
{'Léa': 95, 'Hugo': 72, 'Alice': 89}

La sortie peut varier entre les exécutions. Les valeurs, en revanche, peuvent être de n'importe quel type, même mutable comme une liste :

exemple = {
    'id123': [10, 20, 30],
    456: 'texte',
    ('x', 'y'): False
}

4. Modifier un dictionnaire

Les dictionnaires sont modifiables. Ajoutez une nouvelle paire en assignant une valeur à une clé :

resultats['Samuel'] = 84
print(resultats)

Si la clé existe déjà, la valeur est remplacée :

resultats['Hugo'] = 80
print(resultats)

Voici un exemple inversé où les clés sont des notes :

scores = {89: 'Alice', 72: 'Hugo', 95: 'Léa'}
scores[84] = 'Samuel'
print(scores)

5. Parcourir un dictionnaire

Utilisez une boucle for pour itérer sur les clés :

for cle in resultats:
    print(cle)

Pour afficher clé et valeur ensemble :

for eleve in resultats:
    print(eleve + ' : ' + str(resultats[eleve]))

Exemple de sortie : 'Alice : 89', 'Hugo : 80', etc.

6. Introduction aux ensembles

Un ensemble (set) stocke des éléments uniques et non ordonnés, similaire aux clés d'un dictionnaire. Créez un ensemble à partir d'une liste :

villes = set(['Paris', 'Lyon', 'Marseille'])
print(villes)

L'ensemble élimine automatiquement les doublons :

lettres = set(['A', 'B', 'C', 'C'])
print(lettres)
len(lettres)  # Retourne 3

Pour représenter une liste de membres :

membres = set(['Alice', 'Hugo', 'Léa', 'Samuel'])

7. Accéder aux éléments d'un ensemble

Puisque les ensembles ne sont pas ordonnés, accédez aux éléments par vérification d'appartenance avec in :

>>> 'Alice' in membres
True
>>> 'Eve' in membres
False
>>> 'alice' in membres  # Sensible à la casse
False

8. Propriétés des ensembles

Les ensembles permettent des tests d'appartenance rapides. Les éléments doivent être immuables. Ils sont utiles pour valider des ensembles prédéfinis, comme les jours de la semaine :

jours_semaine = set(['LUN', 'MAR', 'MER', 'JEU', 'VEN', 'SAM', 'DIM'])
entree = 'MAR'
if entree in jours_semaine:
    print('Valide')
else:
    print('Invalide')

Pour les mois :

mois_valides = set(['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Jun', 'Jul', 'Aoû', 'Sep', 'Oct', 'Nov', 'Déc'])
mois_test = 'Fév'
if mois_test in mois_valides:
    print('Mois accepté')
else:
    print('Mois non reconnu')

9. Parcourir un ensemble

Utilisez une boucle for pour itérer sur les éléments :

for ville in villes:
    print(ville)

L'ordre peut varier. Exemple avec des tuples :

donnees = set([('Alice', 89), ('Hugo', 72), ('Léa', 95)])
for paire in donnees:
    print(paire[0] + ' : ' + str(paire[1]))

10. Mettre à jour un ensemble

Ajoutez un élément avec add() :

chiffres = set([1, 2, 3])
chiffres.add(4)
print(chiffres)

L'ajout d'un élément existant n'affecte pas l'ensemble :

chiffres.add(3)
print(chiffres)  # Reste {1, 2, 3, 4}

Supprimez un élément avec remove(), qui lève une exception si l'élément est absent :

chiffres.remove(4)
print(chiffres)

Vérifiez l'existence avant suppression pour éviter les erreurs.

Étiquettes: Python dict Set structures de données collections

Publié le 15 juin à 22h26