Hasta el momento hemos visto dos estructuras fundamentales de datos en Python: las listas y las tuplas. Ahora vamos a explicar la tercera de ellas, los diccionarios.
La estructura de datos de tipo diccionario utiliza una clave para acceder a un valor. El subíndice utilizado puede ser cualquier tipo de datos inmutables, es decir, entero, float, string o tupla.
Las listas y los diccionarios son tipos de dato mutables, es decir, que pueden cambiar.
Un diccionario se crearía por asignación encerrando los valores entre llaves {}, un ejemplo
1 2 |
frutas={"manzana":3,"platanos":5,"melon":12} print(frutas) |
Ejemplo
Definir un diccionario que almacene los nombres de varios países como clave y la cantidad de habitantes como valor. Implementar una función para mostrar cada clave y valor.
1 2 3 4 5 6 7 |
def mostrar(paises): for key in paises: print(key, paises[key]) paises={"españa":40000000, "chile":50000000, "senegal":30000000} mostrar(paises) |
En este ejemplo nos valemos de un bucle for para imprimir cada uno de los valores a través de la key en el diccionario.
Los métodos de obtención de valores son iguales que en las listas o tuplas, con la diferencia de que debemos seleccionar el valor por medio de la key o clave.
También podemos comprobar si una key existe en un diccionario utilizando la función keys(), para el caso anterior sería
1 |
if “pais” in paises.keys(): |
De esta forma podríamos comprobar si una key existe.
Con la función copy() podemos copiar nuestro diccionario en otra variable
1 |
diccionario2=diccionario.copy() |
O eliminar el contenido de un diccionario con la función clear()
1 |
diccionario.clear() |
También podemos obtener los valores de un diccionario utilizando iteritems()
1 2 3 4 |
diccionario={‘color’:’rojo’, ‘ropa’:’gorra’} for key, valor in diccionario.iteritems(): print “El valor de la clave %s es %s” % (key,valor) |
De esta forma podríamos ver la clave y el valor de cada elemento de forma iterada.
También vemos una nueva forma de utilizar la función print, podemos sustituir el valor %s por un valor string para poder realizar el bucle al imprimir el diccionario.
Esto os será muy útil también para poder resolver problemas con un código limpio.
Problemas propuestos
Ejercicio 1
Realizar un programa que permita crear un diccionario inglés / castellano. La clave es la palabra en inglés y el valor es la palabra en castellano. Crear funciones para cargar el diccionario, listar el diccionario. Crear una tercera función que solicite la carga por teclado de una palabra en inglés, mostrar después el valor en castellano si este existe.
Ejercicio 2
Crear un diccionario que defina como clave el número de dni de una persona y como valor un string con el nombre. Cargar los datos de 4 personas, listar el diccionario completo y realizar una tercera función para consultar el nombre de la persona introduciendo su dni.
Ejercicio 3
Realizar un programa que permita cargar un código de producto como clave en un diccionario. Guardar para esta clave el nombre del producto, el precio y el total disponible en stock. Después de ingresar un producto, preguntar si se desea cargar otro, el límite de productos lo dispondrá el usuario. Mostrar el listado de productos, una tercera para consultar un producto mediante su clave y otra para mostrar el listado de productos con stock 0.
Ejercicio 4
Realizar un programa de una agenda. En el diccionario la clave sería la fecha. Para cada actividad ingresar la hora y el nombre de dicha actividad y permitir la introducción de varias actividades para cada fecha. Implementar funciones para cargar datos, listar la agenda al completo y consultar una fecha.
Ejercicio 5
Desarrollar un programa que permita almacenar los datos de n alumnos. Definir un diccionario cuya clave será el número de alumno en el centro. Como valor almacenar una lista con el nombre, la materia a la que está apuntado y la nota obtenida en dicha materia. Un alumno puede estar apuntado a diferentes materias. Implementar funciones para cargar los datos de los alumnos, listar todos los alumnos y consultar un alumno a través de su id.
Además tenéis la lista completa de ejercicios en nuestro repositorio en github.
Con esto acabamos el octavo capítulo de nuestro curso de python 3.5. Si tienen cualquier duda relacionada con el contenido explicada en este capítulo, pueden exponerla en sus comentarios y le ayudaremos a resolverla lo antes posible. Nos vemos en el siguiente capítulo con porciones e índices negativos.
<- Anterior | Volver al índice | Siguiente -> |