Aplicaciones prácticas de defaultdict
El defaultdict
es una estructura de datos versátil que se puede utilizar en una variedad de escenarios prácticos. Aquí hay algunos casos de uso comunes:
Contar ocurrencias
Uno de los casos de uso más comunes del defaultdict
es contar las ocurrencias de elementos en un conjunto de datos. Esto es especialmente útil cuando necesitas realizar un análisis de frecuencia o crear histogramas. Aquí tienes un ejemplo:
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})
Agrupar datos
Otro caso de uso común del defaultdict
es agrupar datos en función de una clave. Esto puede ser útil cuando necesitas organizar datos en categorías o realizar operaciones en subconjuntos de los datos. Aquí tienes un ejemplo:
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']})
Diccionarios anidados
El defaultdict
también se puede utilizar para crear estructuras de datos anidadas, como diccionarios de diccionarios. Esto puede ser útil cuando necesitas representar datos jerárquicos complejos. Aquí tienes un ejemplo:
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'}}})
Al utilizar el defaultdict
, puedes crear y gestionar fácilmente estructuras de datos complejas sin tener que preocuparte por claves que falten o por inicializar diccionarios anidados.