Casos de uso prácticos para defaultdict
El defaultdict es una estructura de datos versátil que se puede utilizar en una variedad de escenarios. A continuación, se presentan algunos casos de uso prácticos para el defaultdict:
Contar ocurrencias
Un caso de uso común para el defaultdict es contar las ocurrencias de elementos en una lista o secuencia. Al utilizar un defaultdict con un valor predeterminado de 0, puedes realizar un seguimiento fácilmente del recuento de cada elemento.
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))
Salida:
{'the': 2, 'quick': 1, 'brown': 1, 'fox': 1, 'jumps': 1, 'over': 1, 'lazy': 1, 'dog': 1}
Agrupar datos
Otro caso de uso común para el defaultdict es agrupar datos basados en una clave. Al utilizar un defaultdict con un valor predeterminado de una lista o conjunto vacío, puedes agregar fácilmente valores a la lista o conjunto correspondiente.
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))
Salida:
{'A': ['Alice', 'Charlie'], 'B': ['Bob', 'Eve'], 'C': ['David']}
Construir árboles y estructuras anidadas
El defaultdict también se puede utilizar para construir estructuras de datos en forma de árbol o diccionarios anidados. Al utilizar un defaultdict con un valor predeterminado de otro defaultdict, puedes crear una estructura de datos jerárquica que se puede recorrer y manipular fácilmente.
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))
Salida:
{'fruits': {'apples': 5, 'bananas': 3}, 'vegetables': {'carrots': 10, 'broccoli': 7}}
Estos son solo algunos ejemplos de los casos de uso prácticos para el defaultdict en Python. Al aprovechar su capacidad para proporcionar valores predeterminados para las claves que no existen, puedes escribir un código más conciso y robusto que maneje los casos extremos de manera más elegante.