Diccionarios en Python

Los diccionarios en Python son un tipo de estructuras de datos que permite guardar un conjunto no ordenado de pares clave-valor.

Crear un diccionario:


auto = {'marca':'Hyundai',
'model':'Tucson',
'motor':'2.0 CVVT',
'year':2007 }

En consola escribimos: 
auto
Out[2]: {'marca': 'Hyundai', 'model': 'Tucson', 'motor': '2.0 CVVT', 'year': 2007}

Sintaxis:

auto={clave única:valor,

}

También puedo llamar mediante consola utilizando su clave:

auto['model']
Out[4]: 'Tucson'

Aqui llamamos al diccionario auto con la clave modelo que le corresponde en este caso Sale por consola "Tucson"

auto['motor']
Out[5]: '2.0 CVVT'

OPERACIONES CON DICCIONARIOS 
ITERAR:
Podemos mostrar en pantalla el valor de sus claves o keys iterando con un for:

auto = {'marca':'Hyundai',
'model':'Tucson',
'motor':'2.0 CVVT',
'year':2007 }
for key in auto:
    print(key)

Resultado por consola:
for key in auto:
    print(key)
>>
marca
model
motor
year

Podemos sacar sus keys también de esta forma:
for clave in auto.keys():
    print(clave)

Y obtenemos por consola el mismo resultado:
>>
marca
model
motor
year

Podemos sacar solo sus valores de esta forma:
for valor in auto.values():
    print(valor)

Y obtenemos por consola el resultado:
>>
Hyundai
Tucson
2.0 CVVT
2007

También puedes imprimir su clave y valor:

for clave, valor in auto.items():
    print(clave,valor)

Resultado por consola:
>>
marca Hyundai
model Tucson
motor 2.0 CVVT
year 2007

Puedes imprimir su clave y valor con un separador de por medio:

for clave, valor in auto.items():
    print(clave,":", valor)

Resultado por consola:
>>
marca : Hyundai
model : Tucson
motor : 2.0 CVVT
year : 2007

Agregar sus campos:

for clave, valor in auto.items():
    print(f'Clave:{clave}; Valor: {valor}')
>>
Clave:marca; Valor: Hyundai
Clave:model; Valor: Tucson
Clave:motor; Valor: 2.0 CVVT
Clave:year; Valor: 2007

Agregar mas valores a mi diccionario:

Creamos un diccionario:

auto = {'marca':'Hyundai',

'model':'Tucson',

'motor':'2.0 CVVT',

'year':2007 }

Con el método .update procedemos agregar nuevo contenido e incluso modificar el existente:


auto.update({"motor":"2.0 diesel","country":"India"})

Al ejecutar tenemos:
auto
Out[4]:
{'marca': 'Hyundai',
 'model': 'Tucson',
 'motor': '2.0 diesel',
 'year': 2007,
 'country': 'India'}

Como vemos se ha cambiado el valor del motor y se agrega un valor mas que es el país.

Verificar si un valor se encuentra en un diccionario:

Para eso utilizamos in:
auto
 "marca" in auto

Como resultado obtendremos:

Out[6]: True

Agregar mas un valor a una clave en un diccionario:

En ocaciones una clave puede llevar mas de un valor, ejemplo:

props = {'fluidos':['agua', 'metanol', 'aceite'],
 'peso_mol':[18, 12, 40],
 'densidad':[1, 0.5, 3]
 }

Luego en consola procedemos a llamar a su clave entre corchetes y salen los valores almacenados ahí: 

props["fluidos"]
Out[11]: ['agua', 'metanol', 'aceite']

También se puede llamar a la clave con el valor que se desee en su posición:

props["fluidos"][2]
Out[12]: 'aceite'

props["fluidos"][0]
Out[13]: 'agua'

props["fluidos"][1]
Out[14]: 'metanol'

Sacar el indice del valor que se encuentra en la clave:

props['peso_mol'].index(40) #Si es con texto se pone entre comillas
Out[19]: 2
La salida por consola muestra la posición del valor 40 que en este caso es el 2 tomando en cuenta que se cuenta desde la posición 0 (cero), uno, dos, ...

En el ejemplo anterior se puede almacenar el valor del index en una variable y luego utilizarlo para otras operaciones P.E.:

props = {'fluidos':['agua', 'metanol', 'aceite'],
 'peso_mol':[18, 12, 40],
 'densidad':[1, 0.5, 3]
 }

 idx = props['fluidos'].index('metanol')

props['densidad'][idx]
Out[22]: 0.5

Otras formas de crear diccionarios en Python:
1ra. forma:
casa=dict(sala=1, baño=2, dormitorio=3)
Al escribir en consola:
casa
Out[26]: {'sala': 1, 'baño': 2, 'dormitorio': 3}

2da. forma:
casa=dict(zip(['Sala', 'Baño', 'Dormitorio'], [1,2,3]))
Al escribir en consola:
casa
Out[32]: {'Sala': 1, 'Baño': 2, 'Dormitorio': 3}

3ra. forma:
casa2=dict({'Sala':1, 'Baño':2, 'Dormitorio':3})
Al escribir en consola:
casa2
Out[38]: {'Sala': 1, 'Baño': 2, 'Dormitorio': 3}

EJERCICIO DE APLICACIÓN #select case:

Crear una función que me permita obtener el numero de cuartos de una casa:
Desarrollo:

def casa(x):
    switch = {
            'Sala':1,
            'Baño':2,
            "Dormitorio":3
            }
    return switch[x]

Escribimos en consola:
casa("Dormitorio")
Out[48]: 3
Y obtenemos el número de cuartos que tiene el dormitorio.


Referencias:
Diccionario en python, con ejemplos. (2015, May 5). Retrieved October 3, 2018, from https://jarroba.com/diccionario-python-ejemplos/

Comentarios

Entradas más populares de este blog

Enumerate

args y kwargs en Python (argumentos)

UnPacking dictionary (Desempaquetando diccionarios)