Python-dictionary


Es un orgullo vivir en Villarubia de Arriba, pero a los 5 habitantes que quedamos nos gustan los retos, por ello hemos decidido por consenso que a partir de ahora queremos ser noruegos además de españoles, queremos ser altos y rubios… ¡y encima adoramos el salmón y las manos suaves!

Tras llegar a un acuerdo con el gobierno noruego hemos conseguido que aprueben la cociudadanía, nos dijeron algo de que al tener playa y paella nuestra villa podría ser un buen territorio noruego (cuando se enteren de que Villarubia de Arriba es la que está en la montaña…). El caso es que al tratar de inscribirme en el Registro Ciudadano de la Embajada Noruega me dijeron que José Luis García no es un nombre noruego válido.

¿Y ahora qué hacemos? Vamos a investigar nombres noruegos de hombre y de mujer a ver cuál podríamos ponernos cada uno…

  • Nombres de hombre: “Arne”, “Bjorn”, “Per”, “Knut”, “Terje”, “Erik”, “Kjell”, “Jan”, “Rolf”, “Gunnar”
  • Nombres de mujer: “Kari”, “Berit”, “Marit”, “Randi”, “Kristin”, “Karin”, “Anja”, “Embla”, “Hilda”, “Silje”

Ya sólo falta decidir qué nombre le damos a cada uno… “Pepe” el panadero va a ser “Kjell”, María la de la frutería, “Anja”…

Bueno, bueno, ¡con estos nombres vamos a ser más noruegos que Edvard Munch!

Tres días más tarde de inscribirnos todos en el registro nadie se acuerda de cómo era su nombre, ¡qué desastre! Todos me preguntan a mí y, para colmo, he perdido el papel donde lo apunté… Necesito algo mejor, algo que me permita luego buscar fácilmente los nombres noruegos cada vez que algún despistado pregunte el suyo… ¡Ya sé, un diccionario de Python!

Como no sé mucho de diccionarios en Python antes de elaborar un archivo voy a trabajar desde terminal. Lo primero será añadir a los nombres de mis vecinos los nombres noruegos elegidos, lo haré en Python3:

Diccionario 01

He investigado un poco, en la lista que he creado entre llaves hay un nombre castellano y un nombre noruego, separados por dos puntos. El primer nombre corresponde a lo que se llama clave (key) y según parece me servirá para buscarlo en el diccionario. El segundo nombre se llama valor (valor), y será la respuesta que el programa me dé al introducir la clave.

Para entender cómo funciona probaré lo siguiente:

Diccionario 02
Vaya, el programa sólo nos ha dado el valor de la clave María, que es su nombre noruego. Ya entiendo, pido al programa que imprima el nombre que acompaña a María en mi diccionario y él obedece, ¡genial!

Ahora que ya tengo claro cómo funciona un diccionario voy a hacer un programa para que puedan consultar sus nombres, añadiendo (como ya hemos visto) un INPUT para que escriban directamente el nombre en un espacio al que he llamado nombre (sí, soy muy original, lo sé).

Crearé un nuevo archivo de texto y lo guardaré con formato .py situando el siguiente código:
Diccionario 03
Ahora voy a probarlo desde el terminal, ejecutando el programa y probando con María:
Diccionario 04

Perfecto, si escribo María me da como respuesta Anja… ¡Esto marcha! Lo que ocurre es que mis vecinos son un poco vagos y tienden a poner sus diminutivos y cosas así, por ejemplo Pepe el panadero el otro día escribió Elpana que es como le llamamos en el pueblo, y el diccionario contestó lo siguiente:
Diccionario 05
Menudo error, al día siguiente le salieron los panes salados de los nervios. Voy a intentar que si pongo un nombre que no está en la lista me dé un aviso, para ello modificaré mi código para que sea como el siguiente:
Diccionario 06
He cambiado la forma de la última línea, de manera que imprima una función de la cual cogerá la traducción si el nombre está en el diccionario o bien dará un aviso si he escrito algo no incluido en el diccionario.

¡Ahora ya no tienen excusa! Y yo he aprendido a hacer diccionarios. Puedes probar a hacer un diccionario de otro tipo (por ejemplo de verbos típicos usados en inglés o algo así)…

En esta entrada hemos aprendido…

  • Cómo hacer diccionarios con Python.
  • Cómo imprimir el valor correspondiente a una clave del diccionario.
  • Cómo informar en caso de elegir una clave no existente en el diccionario.