Cas d'utilisation et exemples
Le defaultdict
en Python a une grande variété de cas d'utilisation, allant du simple comptage à des structures de données plus complexes. Explorons quelques exemples pour comprendre comment vous pouvez exploiter le defaultdict
dans vos projets Python.
Comptage d'occurrences
Un cas d'utilisation courant du defaultdict
est le comptage des occurrences d'éléments dans une liste ou un autre itérable. Cela peut être particulièrement utile lorsque vous devez effectuer des analyses de données ou générer des rapports.
from collections import defaultdict
## Count the occurrences of words in a sentence
sentence = "The quick brown fox jumps over the lazy dog. The dog barks."
word_counts = defaultdict(int)
for word in sentence.split():
word_counts[word] += 1
print(dict(word_counts))
## Output: {'The': 2, 'quick': 1, 'brown': 1, 'fox': 1, 'jumps': 1, 'over': 1, 'the': 1, 'lazy': 1, 'dog.': 1, 'dog': 1, 'barks.': 1}
Dans cet exemple, nous utilisons un defaultdict
avec une valeur par défaut de 0
pour compter les occurrences de chaque mot dans la phrase. Cela nous permet d'incrémenter facilement le compteur de chaque mot sans avoir à vérifier si la clé existe déjà dans le dictionnaire.
Groupement de données
Un autre cas d'utilisation courant du defaultdict
est le groupement de données en fonction d'une certaine clé. Cela peut être utile lorsque vous devez organiser les données de manière plus structurée, par exemple en groupant les données utilisateur par leur ville ou en groupant les données de vente par catégorie de produit.
from collections import defaultdict
## Group a list of tuples by the first element
data = [
('New York', 'Apple'),
('New York', 'Banana'),
('London', 'Orange'),
('Paris', 'Apple'),
('Paris', 'Banana'),
]
grouped_data = defaultdict(list)
for city, product in data:
grouped_data[city].append(product)
print(dict(grouped_data))
## Output: {'New York': ['Apple', 'Banana'], 'London': ['Orange'], 'Paris': ['Apple', 'Banana']}
Dans cet exemple, nous utilisons un defaultdict
avec une valeur par défaut d'une liste vide pour regrouper les données par ville. En parcourant la liste de tuples, nous ajoutons chaque produit à la liste associée à la ville correspondante.
Dictionnaires imbriqués
Le defaultdict
peut également être utile lorsqu'il s'agit de travailler avec des dictionnaires imbriqués, où vous avez besoin d'initialiser automatiquement de nouveaux dictionnaires internes.
from collections import defaultdict
## Create a nested dictionary with defaultdict
nested_dict = lambda: defaultdict(nested_dict)
data = nested_dict()
data['fruits']['apple'] = 5
data['fruits']['banana'] = 3
data['vegetables']['carrot'] = 10
data['vegetables']['broccoli'] = 7
print(data)
## Output: defaultdict(<function <lambda> at 0x7f6a8c1c9d60>, {'fruits': {'apple': 5, 'banana': 3}, 'vegetables': {'carrot': 10, 'broccoli': 7}})
Dans cet exemple, nous créons un defaultdict
imbriqué en utilisant une fonction lambda. Cela nous permet d'initialiser automatiquement de nouveaux dictionnaires internes lorsque nous ajoutons de nouvelles clés au dictionnaire externe.
En explorant ces cas d'utilisation et exemples, vous devriez mieux comprendre comment exploiter le defaultdict
dans vos projets Python pour simplifier votre code et gérer plus efficacement les structures de données complexes.