Las referencias de palabras son un método ventajoso para almacenar información para su

posterior recuperación por nombre (clave). Las claves deben ser artículos únicos e inalterables, y son cadenas ordinarias. Las cualidades de una referencia de palabra pueden ser cualquier cosa. En algunas aplicaciones, las cualidades son de tipo sencillo, por ejemplo, números enteros y cadenas.

Se vuelve aún más fascinante cuando las cualidades en una referencia de palabra son acumulaciones (registros, dictados, etc.) Para esta situación, el valor (un resumen o dictado vacante) debe ser introducido la primera vez que se utiliza una clave determinada. Si bien esto es generalmente sencillo de hacer físicamente, el tipo de dictado por defecto mecaniza y mejora este tipo de tareas.

Un dictado por defecto funciona precisamente como un dictado típico, sin embargo, se instaura con una capacidad (“planta de procesamiento por defecto”) que no suscita controversias y da al defecto un incentivo a una clave inexistente.

Un defecto nunca levantará un KeyError. Cualquier llave que no existe, es devuelta por la fábrica por defecto.

>>> de las colecciones de importación por defecto.

>>> ice_cream = defaultdict(lambda: ‘Vainilla’)

>>> 

>>> ice_cream = defaultdict(lambda: ‘Vainilla’)

>>> Helado[‘Sarah’] = ‘Chunky Monkey’

>>> Helado[‘Abdul’] = ‘Nuez de mantequilla’.

>>> imprimir helado[‘Sarah’]

Chunky Monkey

>>> Imprimir helado.

Vainilla

>>> 

Asegúrate de pasar el artículo de capacidad a defaultict(). Intente no llamar a la capacidad, por ejemplo defaultdict(func), no defaultd.ict(func()).

En el modelo adjunto, se utiliza un predeterminado para el recuento. La planta de fabricación por defecto es int, que por lo tanto tiene una estimación por defecto de cero. (Nota: “lambda: 0″ funcionaría igualmente en esta circunstancia). Por cada alimento en el resumen, el valor se incrementa en uno donde la clave es el alimento. No tenemos que asegurarnos de que el alimento sea a partir de ahora una clave – utilizará la estimación por defecto de cero

>> de las colecciones de importación por defecto

>>> food_list = ‘spam spam spam spam huevos spam’.split()

>>> food_count = defaultdict(int) # el valor por defecto de int es 0

>>> para la comida en la lista de alimentos:

… food_count[food] += 1 # incrementar el valor del elemento en 1

Defaultdict(<tipo ‘int’>, {‘eggs’: 1, ‘spam’: 7})

>>> 

En el siguiente ejemplo, empezamos con una lista de estados y ciudades. Queremos construir un diccionario donde las claves son las abreviaturas de los estados y los valores son listas de todas las ciudades de ese estado. Para construir este diccionario de listas, usamos un diccionario por defecto con una fábrica de listas por defecto. Se crea una nueva lista para cada nueva clave.

>>> de las colecciones de importación por defecto.

>>> city_list = [(‘TX’,’Austin’), (‘TX’,’Houston’), (‘NY’,’Albany’), (‘NY’, ‘Syracuse’), (‘NY’, ‘Buffalo’), (‘NY’, ‘Rochester’), (‘TX’, ‘Dallas’), (‘CA’, ‘Sacramento’), (‘CA’, ‘Palo Alto’), (‘GA’, ‘Atlanta’)]

>>> 

>>> ciudades_por_estado = defaultdict(lista)

>>> para el estado, ciudad en lista de ciudades:

… ciudades_por_estado[estado].append(ciudad)

para el estado, ciudades en ciudades_por_estado.iteritems():

…imprimir estado, ‘, ‘.unir (ciudades)

NY Albany, Syracuse, Buffalo, Rochester

CA Sacramento, Palo Alto

GA Atlanta

TX Austin, Houston, Dallas