Cas d'utilisation pratiques du defaultdict
Le defaultdict
est une structure de données polyvalente qui peut être utilisée dans diverses situations. Voici quelques cas d'utilisation pratiques du defaultdict
:
Comptage des occurrences
Un cas d'utilisation courant du defaultdict
est le comptage des occurrences d'éléments dans une liste ou une séquence. En utilisant un defaultdict
avec une valeur par défaut de 0
, vous pouvez facilement suivre le nombre d'occurrences de chaque élément.
from collections import defaultdict
## Count the occurrences of words in a sentence
sentence = "the quick brown fox jumps over the lazy dog"
word_count = defaultdict(int)
for word in sentence.split():
word_count[word] += 1
print(dict(word_count))
Sortie :
{'the': 2, 'quick': 1, 'brown': 1, 'fox': 1, 'jumps': 1, 'over': 1, 'lazy': 1, 'dog': 1}
Groupement de données
Un autre cas d'utilisation courant du defaultdict
est le groupement de données en fonction d'une clé. En utilisant un defaultdict
avec une valeur par défaut d'une liste ou d'un ensemble vide, vous pouvez facilement ajouter des valeurs à la liste ou à l'ensemble correspondant.
from collections import defaultdict
## Group students by their grades
students = [
{"name": "Alice", "grade": "A"},
{"name": "Bob", "grade": "B"},
{"name": "Charlie", "grade": "A"},
{"name": "David", "grade": "C"},
{"name": "Eve", "grade": "B"}
]
grade_groups = defaultdict(list)
for student in students:
grade_groups[student["grade"]].append(student["name"])
print(dict(grade_groups))
Sortie :
{'A': ['Alice', 'Charlie'], 'B': ['Bob', 'Eve'], 'C': ['David']}
Construction d'arbres et de structures imbriquées
Le defaultdict
peut également être utilisé pour construire des structures de données en arbre ou des dictionnaires imbriqués. En utilisant un defaultdict
avec une valeur par défaut d'un autre defaultdict
, vous pouvez créer une structure de données hiérarchique qui peut être facilement parcourue et manipulée.
from collections import defaultdict
## Build a nested dictionary
data = defaultdict(lambda: defaultdict(int))
data["fruits"]["apples"] = 5
data["fruits"]["bananas"] = 3
data["vegetables"]["carrots"] = 10
data["vegetables"]["broccoli"] = 7
print(dict(data))
Sortie :
{'fruits': {'apples': 5, 'bananas': 3}, 'vegetables': {'carrots': 10, 'broccoli': 7}}
Ce ne sont que quelques exemples des cas d'utilisation pratiques du defaultdict
en Python. En exploitant sa capacité à fournir des valeurs par défaut pour les clés manquantes, vous pouvez écrire un code plus concis et robuste qui gère les cas limites plus gracieusement.