Applications pratiques du defaultdict
Le defaultdict
est une structure de données polyvalente qui peut être utilisée dans une variété de scénarios pratiques. Voici quelques cas d'utilisation courants :
Comptage des occurrences
L'un des cas d'utilisation les plus courants du defaultdict
est le comptage des occurrences d'éléments dans un ensemble de données. Cela est particulièrement utile lorsque vous devez effectuer une analyse de fréquence ou créer des histogrammes. Voici un exemple :
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(word_count)
## Output: defaultdict(<class 'int'>, {'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é. Cela peut être utile lorsque vous devez organiser des données en catégories ou effectuer des opérations sur des sous-ensembles de données. Voici un exemple :
from collections import defaultdict
## Group people by their age
people = [
{'name': 'Alice', 'age': 25},
{'name': 'Bob', 'age': 30},
{'name': 'Charlie', 'age': 25},
{'name': 'David', 'age': 35},
]
age_groups = defaultdict(list)
for person in people:
age_groups[person['age']].append(person['name'])
print(age_groups)
## Output: defaultdict(<class 'list'>, {25: ['Alice', 'Charlie'], 30: ['Bob'], 35: ['David']})
Dictionnaires imbriqués
Le defaultdict
peut également être utilisé pour créer des structures de données imbriquées, telles que des dictionnaires de dictionnaires. Cela peut être utile lorsque vous devez représenter des données hiérarchiques complexes. Voici un exemple :
from collections import defaultdict
## Create a nested dictionary to store product information
products = defaultdict(lambda: defaultdict(dict))
products['Electronics']['Laptop']['price'] = 999.99
products['Electronics']['Laptop']['brand'] = 'LabEx'
products['Electronics']['Smartphone']['price'] = 499.99
products['Electronics']['Smartphone']['brand'] = 'LabEx'
products['Furniture']['Chair']['price'] = 79.99
products['Furniture']['Chair']['brand'] = 'LabEx'
print(products)
## Output: defaultdict(<function <lambda> at 0x7f6a8c1c8d60>, {'Electronics': {'Laptop': {'price': 999.99, 'brand': 'LabEx'}, 'Smartphone': {'price': 499.99, 'brand': 'LabEx'}}, 'Furniture': {'Chair': {'price': 79.99, 'brand': 'LabEx'}}})
En utilisant le defaultdict
, vous pouvez facilement créer et gérer des structures de données complexes sans avoir à vous soucier des clés manquantes ou de l'initialisation des dictionnaires imbriqués.