Anuncios

Bienvenidos sean a este post, hoy hablaremos sobre otras de las funciones dentro del modulo de colecciones.

Anuncios

Esta funcion nos permite evitar el chequeo de si existe una clave en nuestro diccionario simplemente insertando uno nuevo para tu primer intento de acceso con un valor predeterminado cuyo tipo pasas en la creacion, vamos a suponer que necesitamos un diccionario donde tendremos un campo llamado edad al cual necesitamos que le sume uno en caso de no tener ningun valor asignado, veamos el siguiente codigo:

>>> d = {}
>>> d['edad'] = d.get('edad',0) + 1
>>> d
{'edad': 1}
>>>
Anuncios

En este caso creamos un diccionario vacio donde agregaremos un nuevo campo llamado edad y por medio de get chequeamos el campo, le pasamos el valor predeterminado de 0 y le sumamos 1, si lo chequeamos funciono correctamente pero que sucede si ya tiene un valor?, veamos:

>>> d = {'edad': 39 }
>>> d['edad'] = d.get('edad',0) + 1
>>> d
{'edad': 40}
>>>
Anuncios

En este caso tenemos un diccionario pero ahora edad tiene un valor, si ejecutamos la accion anterior veremos que nos incrementara el valor porque no chequea si existe o no un valor sino que simplemente en caso de no existir lo agrega pero al no verificar procede a sumarle uno, para solucionar esto vamos a utilizar el siguiente codigo:

>>> from collections import defaultdict
>>> dd = defaultdict(int)
>>> dd['edad'] += 1
>>> dd
defaultdict(<class 'int'>, {'edad': 1})
>>>
Anuncios

Como siempre debemos primero importar la funcion, luego crearemos un objeto de este tipo, lo siguiente sera buscar una clave con el nombre edad y le incrementaremos en uno pero como este no existe, defaultdict le asignara un valor predeterminado, en este caso 0, y a este valor lo incrementaremos en uno, por ultimo vemos como se creo el diccionario, pero ahora veamos un ejemplo un poco mas practico:

>>> from collections import defaultdict
>>> def valor_pre():
...     return "No existe"
... 
>>> d = defaultdict(valor_pre)
>>> d['a'] = 1
>>> d['b'] = 2
>>> print(d['a'])
1
>>> print(d['b'])
2
>>> print(d['c'])
No existe
>>>
Anuncios

Como siempre importen a defaultdict, luego crearemos una funcion que se llamara valor_pre, lo cual lo unico que hace es devolver un mensaje de “No existe”, despues creamos un objeto de tipo defaultdict y a diferencia del ejemplo anterior en lugar de pasar un tipo le pasamos la funcion que creamos recien, despues agregamos dos claves con valores, una vez creados las imprimimos en pantalla pero cuando llegamos a un caso de clave que no existe nos devuelve el mensaje de la funcion, este es un ejemplo mas practico para utilizarlo.

Anuncios

En resumen, hoy hemos visto sobre defaultdict, que beneficia nos brinda, como se implementa, hemos un visto un ejemplo simple y otro mas practico, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.00