Saltar al contenido
Control Automático Educación

Diccionarios

En esta entrada comenzaremos a entender como funcionan los Diccionarios en Python, como utilizarlos, veremos ejemplos y videos de explicación para que te quede mucho más claro.

Antes de comenzar te invito para que veas nuestro Curso Gratuito de Python desde Cero.

Y que te suscribas al canal, si te gusta la programación, electrónica y la teoría del control:

Diccionarios en Python

Un Diccionario es una estructura y tipo de dato en Python, muy parecido con las listas o tuplas de python donde  nos permite almacenar cualquier tipo de dato: enteros, cadenas, listas e incluso otras funciones.

La diferencia es el identificador de cada elemento conocido como clave o llave (Key), el cual es totalmente configurable.

diccionario = {
        'int': 7,
        'str': 'Hola',
        'bool': True,
        'float':3.5
        }
diccionario en python

Los diccionarios en Python son objetos que se utilizan para almacenar valores de datos en pares key:value. Donde key es el índice como lo vemos en la figura anterior, y el value es el valor almacenado dentro del índice.

Un diccionario es una colección ordenada, modificable y que no admite duplicados. Los diccionarios se escriben con llaves y tienen claves y valores:

# diccionario que almacena masas molares de tres sustancias
# los índices de objetos son cadenas que contienen fórmulas de sustancias
masas_molares = {'H20': 18, 'CO2': 44, 'H2': 2}

print (masas_molares['CO2'])
# diccionario que almacena a los ganadores de la Copa Mundial de la FIFA de 1990 a 2014
# los índices de objetos son números enteros que representan los años de los corazones
vencedores_copas = {1990: 'Alemania', 1994: 'Brasil', 1998: 'Francia',\
                    2002: 'Brasil', 2006: 'Itália', 2010: 'Espana',\
                    2014: 'Alemania', 2018: 'Francia'}

print(vencedores_copas[2014])

Los diccionarios son muy útiles para la implementación simple de bases de datos, como se pudo notar en los ejemplos anteriores.

Ordenado o desordenado?

A partir de la versión 3.7 de Python, los diccionarios están ordenados, es decir que los elementos tienen un orden definido y ese orden no cambiará. En Python 3.6 y versiones anteriores, los diccionarios están desordenados donde elementos (values) no tienen un orden definido, no se puede hacer referencia a un elemento usando un índice.

Mutables

Los diccionarios son Mutables, lo que significa que podemos cambiar, agregar o eliminar elementos después de que se haya creado el diccionario. A diferencia de las Tuplas, las cuales estudiamos en la entrada anterior.

No se permiten llaves (key) duplicadas

Los diccionarios no pueden tener dos elementos con la misma clave o llave:

ano_nacimiento = {
	1990: 'Juan'
	1985: 'Erica'
	2001: 'Samanta'
	2001: 'Fernanda'
}
print(ano_nacimiento)
funcion input en python

Función Input

Display 7 Segmentos MicroPython

Display 7 Segmentos

Trabajando con Diccionarios en Python

Un diccionario puede contener en su interior números, tuplas y listas.

dic1 = {10:7, 
        20:(1, 2, 3),
        30: ['Control','Educación']}

O inclusive con un diccionario podemos generar una especie de Tabla de datos. A modo de ejemplo una tabla que contiene materiales de una tienda de papelería.

tienda = {'item':['Lápiz','Carpeta','Marcador'],
          'cantidad': [3, 10, 5],
          'valor': [3.50, 4.25, 7.85]}
Ejemplos con Diccionarios en Python

Puedo generar un diccionario con los datos de una persona, por ejemplo:

datos = {'nombre': 'Sergio',
         'edad': 25,
         'Genero':'M'}

Y si deseamos eliminar algún elemento del diccionario podemos emplear la función del referenciando el key que se desea suprimir del diccionario.

del datos['edad']

Para poder imprimir los elementos del diccionario usamos las siguientes funciones:

print(datos.values()) #Imprime los valores
print(datos.keys())   #Imprime las llaves
print(datos.items())  #Imprime los elementos como tuplas (key, value)

los diccionarios también son objetos iterables, por lo tanto puedo recorrer tanto los key como los value usando un ciclo for:

for i, j in datos.items():
        print(f'Su {i} es {j}')

donde la variable iteradora i va a recorrer los keys y la variable iteradora j va a recorrer los values. Estamos usando dos variables iteradoras, ya que estamos usando el método items que permite obtener los objetos del diccionario como tuplas.

Dictionary Comprehension

La comprensión de diccionarios (dictionary comprehension) es una forma elegante y concisa de crear diccionarios. Este método permite que transformemos un diccionario en otro diccionario. Durante dicha transformación, los elementos del diccionario original pueden estar condicionados al momento de crear el nuevo diccionario por lo tanto cada elemento se puede transformar según sea necesario.

Los dictionary comprehension con python los podemos hacer en una linea con la siguoente sintaxis:

dict = {key:value for value in iterable if condition}

Considere el siguiente problema, donde desea crear un nuevo diccionario donde la key es un número divisible por 2 en un rango de -10 a 0 y su value es el cuadrado del número.

dict_1 = {x:x**2 for x in range (-10, 0) if x%2 == 0}

También podemos emplear tanto el value como el key dentro del dictionary comprehension usando el método items().

dict = {key:value for (key,value) in dictionary.items() if condition}

def main():
    # dict = {}
    # for i in range(-10,0):
    #     if i % 2 == 0:
    #         dict[i] = i**2
    
    dict = {x:x**2 for x in range(-10,0) if x%2 == 0}
    print(dict)  
    
    dict1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
    
    triple_dict = {k:v*3 for (k,v) in dict1.items()}
    print(dict1)
    print(triple_dict)


if __name__ == '__main__':
    main()

Eso es todo por la entrada del dia de hoy, espero les haya gustado y hayan aprendido algo nuevo. Si te ha servido el contenido de esta entrada, de los videos y los códigos de implementación y deseas apoyar mi trabajo invitandome a un café super barato, puedes hacerlo en el siguiente link:

👉 Invitar a Sergio a un Café ☕️

Que esten muy bien, nos vemos en la siguiente entrada.