Aprende a dominar los diccionarios en Python con ejemplos claros y directos. Aquí verás cómo crear, acceder e iterar estas estructuras de datos basadas en llaves y valores, cuándo aparece un KeyError y cómo evitarlo con get. Además, aprovecharás métodos como keys, values, items y la función dir para explorar y practicar.
¿Qué es un diccionario en Python y en qué se diferencia de una lista?
Los diccionarios son una asociación entre llaves y valores. A diferencia de una lista, donde el acceso es por índice entero, en un diccionario la llave puede ser casi cualquier objeto. Normalmente verás strings por claridad.
Es una estructura llave-valor muy flexible.
Similar a un diccionario de la RAE: palabra como llave, definición como valor.
Acceso por llave, no por posición numérica.
¿Por qué las llaves no son solo números?
Porque un diccionario no depende del orden, sino de la identificación semántica de cada elemento. Usar strings hace el código más explícito y legible.
¿Qué ejemplo mental ayuda a entenderlo?
Piensa en la RAE: para cada palabra hay una definición. Lo mismo en Python: llave → valor. Incluso podrías modelar algo tan grande como un repertorio de definiciones.
¿Cómo crear y acceder a un diccionario en Python?
Puedes inicializar un diccionario de dos maneras: con notación literal usando llaves, o con la función globaldict. Luego, agrega pares llave-valor y accede por llave.
¿Cómo inicializar con notación literal o función dict?
Ahora añade llaves y valores en el ejemplo tipo RAE:
rae["pizza"]="la comida más deliciosa del mundo"rae["pasta"]="la comida más sabrosa de Italia"print(rae)# {'pizza': 'la comida más deliciosa del mundo', 'pasta': 'la comida más sabrosa de Italia'}
Accede por llave existente:
print(rae["pizza"])# la comida más deliciosa del mundoprint(rae["pasta"])# la comida más sabrosa de Italia
¿Qué pasa con llaves inexistentes y cómo evitar errores?
Si accedes a una llave que no existe, aparece KeyError y, si no lo manejas, el programa termina. Para evitarlo, usa get con un valor por defecto, por ejemplo None.
# acceso directo: produce KeyError si la llave no existe# rae["helado"] # KeyError: 'helado'# acceso seguro con geta = rae.get("helado",None)print(a)# Nonea = rae.get("pizza",None)print(a)# la comida más deliciosa del mundo
Puntos clave:
KeyError indica que la llave no existe.
get evita el error y retorna un valor por defecto.
Usar None comunica “no hay nada” sin romper la ejecución.
¿Cómo iterar un diccionario con keys, values e items?
Para recorrer un diccionario, elige si quieres iterar sobre llaves, valores o sobre ambos. Los métodos keys, values e items facilitan cada caso.
¿Cómo obtener llaves, valores e ítems?
rae.keys()# lista de llavesrae.values()# lista de valoresrae.items()# lista de tuplas (llave, valor)
¿Cómo recorrer con for de forma clara?
# recorrer llavesfor key in rae.keys():print(key)# recorrer valoresfor value in rae.values():print(value)# recorrer llave y valorfor key, value in rae.items():print(key, value)
Buenas prácticas:
Nombra las variables internas según su contenido: key, value.
Elige keys, values o items según lo que necesites imprimir o procesar.
¿Cómo descubrir más métodos disponibles?
Apóyate en dir para listar los métodos y atributos del objeto diccionario. Es una forma directa de explorar sin memorizar todo.
print(dir(rae))
Ideas para fortalecer habilidades:
Usa dir a diario para aprender métodos disponibles sin sobrecargar la memoria.
Experimenta con get y diferentes valores por defecto.
Practica iteraciones con keys, values e items según el caso de uso.
¿Probaste otra combinación de llaves y valores o algún método interesante del diccionario? Comparte tus pruebas y hallazgos en los comentarios.
Jugando un poco con un iterador podemos usar la clase enumerate para saber la posición, la llave, y el valor de cada llave:
for idx, key inenumerate(rae):print('{} : {} = {}'.format(idx, key, rae[key]))
Un diccionario, es un conjunto de datos que están asociados por llaves:valor-de-llave (key: value) estos son muy similares a una lista en el sentido de que se puedes acceder al contenido través de su índices, que son las llave (keys) algunas de sus diferencias son las siguientes:
los índices reciben el nombre de llaves (key).
En las listas los índices tienen que ser enteros.
En el diccionario pueden se casi de cualquier tipo.
Los diccionarios se declaran con {} o con la función dict. Ejemplo:
#video 24.Diccionarioimport os
#Declaraciond de un diccionario
comida_conjunto ={}comida_conjunto ['Pasta']='Comida que tiene origen en italia'comida_conjunto ['Pabellon Criollo']='Comida que tiene origen en Venezuela'comida_conjunto ['Arepa Criolla']='Comida tradiccional de Venezuela'cantidades ={1:'uno',2:'dos',3:'tres'}if __name__ =="__main__": os.system('clear')print('las llaves son: ',comida_conjunto.keys())print('Los valores son: ',comida_conjunto.values())print('los items son: ',comida_conjunto.items())
#ciclar a lo largo de las llaves
print('*'*50)print('las comidas son: ')print('*'*50)for comida_keys in comida_conjunto.keys():print( comida_keys)
#ciclar por los valores
print('*'*50)print('las definiciones de las comidas son: ')print('*'*50)for comida_value in comida_conjunto.values():print(comida_value)
#ciclar por llaves y valores de las llaves
print('*'*50)print('las comidas y definiciones son: ')print('*'*50) contador=0for comida_keys,comida_value in comida_conjunto.items(): contador+=1print('{}.-{}: {}'.format( contador,comida_keys, comida_value ))
hola me puedes explicar que hace la libreria "os" y para que sirve os.system('clear').
gracias
Un diccionario, es básicamente un diccionario real --> para cada palabra existe una definición .
--> para cada llave existe un valor.
Me gusta la forma como lo describes :D
llave: pizza valor: Especie de torta de harina amasada, encima de la cual se pone queso, tomate frito y otros ingredientes, y que se cuece en el horno.
Recuerden para borrar elementos del diccionario:
.pop('keyName') -->elimina el keyname
.popitem() --> elimina el ultimo item insertado
del your_Dic_Name['KeyName'] --> elimina el 'keyname'
del your_Dic_Name --> elimina por completo el diccionario creado
.clear() --> Vacia el diccionario
for key, value in rae.items():print(f'{key}: {value}')
¿Cómo se utiliza fromkeys?
Crea un diccionario con un mismo valor, el primer parametro es una tupla de keys (claves) del diccionario, el segundo el valor inicial o por defecto
Los datos de los diccionarios también se guardan de forma desordenada. Los diccionarios tienen dos elementos por posición la clave : y el valor y esta es separada por dos puntos. Y cada posición esta separada por una coma También se pueden almacenar varios elementos en un diccionario, los diccionarios también aceptan varios tipos de datos, también se pueden añadir duplas, listas y otros diccionarios.
Ejemplo:
Diccionario = {“azul”:”Blue”,”rojo”:red}
Print(diccionario)
Para agregar elementos al diccionario se hace lo siguiente:
Diccionario [“amarillo”]= “yellow”
Para modificar un elemento dentro del diccionario simplemente directamente en el código se hace la modificación.
Para eliminar un elemento del diccionario se hace lo siguiente.
Del( diccionario[“amarillo”])
Para buscar un elemento dentro de un diccionario se hace lo siguiente.
Print(diccionario[“azul” ] )
Buscar un elementose utiliza el siguiente código.
Print(equipo.get(elemento,”si el elemento no esta le hace saber aquí”))
Para buscar solo las claves dentro del diccionario se hace lo siguiente:
Print(equipo.keys())
for key in diccionario.keys(): se utiliza para buscar las claves dentro del diccionario
Para mostrar los valores dentro del diccionario se hace lo siguiente:
Print(equipo.values( ) )
for valúes in diccionario.values(): se tulipa para buscar los valores dentro del diccionario
Para mostrar las claves y los valores de un diccionario se hace lo siguiente:
Print(equipo.items( ))
Un pequeño manual de los fundamentos de diccionarios. ¡Muchas gracias!
Si queremos iterar sobre un diccionario lo podemos hacer por sus keys, values y items
for key in my_dict.keys():print(key)for value in my_dict.values():print(value)for key, value in my_dict.items():print(key, value)
este tuto de David es otro nivel y se puede complementar con
Otra forma de imprimir los items, no se si sea correcta pero sirve
>>>for item in rae.items():...print(item)...('pizza','La comida mas deliciosa del mundo')('pasta','La comida mas sabrosa de italia')```
Yo creo que depende de tus necesidades, en tu codigo no podrias manipular por separado las llaves y los valores a diferencia de usar dos variables (keys y values). Saludos
¡Hola Miguel! Es correcto lo que hiciste, respondiendo a tu duda. En programación siempre suele haber muchas respuestas para un mismo problema ;)
un Diccionario seria como un Objeto en Javascript ?
si, es parecido o tambien lo puedes identificar como un array asociativo.
ME PARECE MAS UN ARRAY ASOCIATIVO
Un diccionario es el equivalente a un objeto en otros lenguajes, ya que se conforma de igual manera: ‘key’ = ‘value’
La ventaja de python sobre otros lenguajes es que maneja métodos para eliminar elementos, limpiar el diccionario, copiar, y varios más. Evitándonos hacer tantas iteraciones y creando capas de diccionarios (ó objetos) con los datos ya filtrados.
jaja masomenos, pero en python existen las class(con las cuales si se hacen los objetos). Los diccionarios sirven para guardar valores dentro de una llave sin poder modificar el valor tan fácilmente c:
1.dir() sin argumentos(Ámbito Local):Devuelve los nombres definidos en el espacio de nombres actual.variable_a=10print(dir()) # Muestra'variable_a' y funciones incorporadas
2.dir() con un Módulo(Ej.math):Lista las funciones y constantes disponibles dentro de un módulo importado.import math
print(dir(math)) # Muestra['__doc__',...,'cos','pi','sin',...]3.dir() con un Objeto(Ej.una cadena/string):Muestra los métodos aplicables a un tipo de dato.texto="Hola"print(dir(texto)) # Muestra métodos como 'upper','lower','split', etc.4.dir() con una Clase definida por el usuario:Permite ver métodos y atributos de una instancia.classPersona: def __init__(self, nombre): self.nombre= nombre
p =Persona("Ana")print(dir(p)) # Muestra'nombre' y métodos predeterminados