Los diccionarios en Python quizás son los objetos más complejos para almacenar datos que nos ofrece este lenguaje y a los que más utilidad podemos sacar, aunque no tiene porque ser así. En este tutorial vamos a ver algunos ejemplos sencillos y como guardar tuplas y listas dentro de diccionarios para después poder recorrerlos.
Diccionarios en python, principal diferencia
La principal diferencia entre diccionarios, listas y tuplas es que los primeros, a los ojos de programadores php arrays asociativas con una clave y un valor.
Crear un diccionario en Python
Como ya hemos dicho, un diccionario viene a ser como un array asociativo con su clave y su valor, así es representado en python.
1 |
diccionario = {1:"hola",2:"que",3:"ase"} |
Recorrer diccionarios en python
Aquí cambia un poco la cosa con respecto a las listas y las tuplas en python, los diccionarios tienen una clave y un valor, así que si hacemos lo siguiente.
1 2 |
for d in diccionario: print(d) |
Obtendremos 1,2,3, es decir, sus respectivas claves, acceder a su valor es tan sencillo como lo siguiente.
1 2 |
for d in diccionario: print(diccionario[d]) |
Y podremos ver lo siguiente, hola que ase, pero lo veremos con saltos de línea, si queremos formatear ese texto podemos hacer uso de comodines en print al igual que podemos hacer con sprintf en php.
1 |
print('%s %s %s %s\n' % ("Texto formateado:", diccionario[1], diccionario[2], diccionario[3])) |
Como podemos ver, hemos accedido por su clave, esto es así por sus claves son 1, 2 y 3, que quede claro que los índices son los nombres que nosotros le hemos asignado, un ejemplo será más claro.
1 2 |
diccionario["nombre"] = "Israel" print(diccionario["nombre"]) # Israel |
Diccionarios más complejos en Python
Como ya hemos dicho, podemos guardar todo en un diccionario, incluso más diccionarios, el siguiente ejemplo puede ser un completo lío o muy instructivo, espero que sea instructivo.
1 2 3 4 5 6 7 8 9 10 11 12 |
# diccionario complejo midiccionario = { 1: "hola", 2:"que", 3:"ase", "nombre":"Israel", "blog":"uno de piera", "lista": [1,2,3,4], "tupla": (1,2,3,4,5,6,7,8), "diccionario_tupla": {"tupla": [1,2,3,4]}, "diccionario_lista": {"lista": (1,2,3,4,5,6,7,8)} } |
Y para recorrer nuestro diccionario podemos hacer lo siguiente.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#recorremos nuestro <strong>diccionario</strong> y recorremos la <strong>lista</strong> y la <strong>tupla</strong> formateando valores # por las dudas, %s para strings %d para enteros # d se genera al vuelo, llamalo como quieras, es la clave de cada elemento del diccionario for d in midiccionario: if d == "lista": for l in midiccionario[d]: print("%s %d" % ("lista valor", l)) elif d == "tupla": for t in midiccionario[d]: print("%s %d" % ("tupla valor", t)) else: print(midiccionario[d]) ''' uno de piera hola que ase {'lista': (1, 2, 3, 4, 5, 6, 7, 8)} {'tupla': [1, 2, 3, 4]} Israel tupla valor 1 tupla valor 2 tupla valor 3 tupla valor 4 tupla valor 5 tupla valor 6 tupla valor 7 tupla valor 8 lista valor 1 lista valor 2 lista valor 3 lista valor 4 ''' |
Finalmente, para poder comprobar el tipo de un diccionario, es tan simple como lo siguiente.
1 |
print(type(midiccionario))# <type 'dict'> |
Y eso es todo, con esto creo que es suficiente para entender los diccionarios, no hace falta complicar más la cosa.