David Vargas Domínguez
Ivan Robles
Buen aporte!! 😃
Néstor Iván Cepeda Munevar
¡Excelente! También me gusta cómo ha cambiado python 2 a 3.
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.
¿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 global dict. Luego, agrega pares llave-valor y accede por llave.
¿Cómo inicializar con notación literal o función dict?
# notación literal rae = {} # función global otra = 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 mundo print(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 get a = rae.get("helado", None) print(a) # None a = rae.get("pizza", None) print(a) # la comida más deliciosa del mundo
Puntos clave:
¿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 llaves rae.values() # lista de valores rae.items() # lista de tuplas (llave, valor)
¿Cómo recorrer con for de forma clara?
# recorrer llaves for key in rae.keys(): print(key) # recorrer valores for value in rae.values(): print(value) # recorrer llave y valor for key, value in rae.items(): print(key, value)
Buenas prácticas:
¿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:
¿Probaste otra combinación de llaves y valores o algún método interesante del diccionario? Comparte tus pruebas y hallazgos en los comentarios.
David Vargas Domínguez
Ivan Robles
Buen aporte!! 😃
Néstor Iván Cepeda Munevar
¡Excelente! También me gusta cómo ha cambiado python 2 a 3.
Daniel Correa
Puedo tener un diccionario dentro de un diccionario
comida = {"italiana": "pizza", "mexicana" : {'deliciosas': 'taco'}}
Accedo de esta manera al objeto
comida["mexicana"]["deliciosas"] >>>'taco'
Omar Daniel Centeno
Mauricio Gonzalez Falcon
Parece más práctico usar listas, gran aporte!
Martin Armando Figueroa
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 in enumerate(rae): print('{} : {} = {}'.format(idx, key, rae[key]))
Angel de Jesus Quintero Pereira
Rayan Renato Figueroa Asencios
hola me puedes explicar que hace la libreria "os" y para que sirve os.system('clear'). gracias
Ingrid Natalia Rodriguez Ovalle
Un diccionario, es básicamente un diccionario real --> para cada palabra existe una definición . --> para cada llave existe un valor.
Omar Daniel Centeno
Me gusta la forma como lo describes :D
Martín Leyva
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.
Santiago Pulido Peláez
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
Eduardo Vladimir Azanza Lutsak
for key, value in rae.items(): print(f'{key}: {value}')
alvamar zapata
¿Cómo se utiliza fromkeys?
David Esteban Solorzano Taborda
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
claves = ('key1', 'key2', 'key3') valor = 0 my_dict = dict.fromkeys(claves, valor)
Giovany samaca
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( ))
Omar Daniel Centeno
Un pequeño manual de los fundamentos de diccionarios. ¡Muchas gracias!
David Vargas Domínguez
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)
Perla Godinez Castillo
este tuto de David es otro nivel y se puede complementar con
Miguel Angel Ramirez Samano
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')```
Esteban Mariño
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
Facundo Nicolás García Martoni
Profesor¡Hola Miguel! Es correcto lo que hiciste, respondiendo a tu duda. En programación siempre suele haber muchas respuestas para un mismo problema ;)
Jorge Hernandez Rozo
un Diccionario seria como un Objeto en Javascript ?
Jonhatan prieto mora
si, es parecido o tambien lo puedes identificar como un array asociativo.
Jeith S Carrillo A
ME PARECE MAS UN ARRAY ASOCIATIVO
Jose Francisco Romero Meza
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.
Sebastian Alejandro Veliz Ysla
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:
Juan Antonio Chavez
1. dir() sin argumentos (Ámbito Local): Devuelve los nombres definidos en el espacio de nombres actual. variable_a = 10 print(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. class Persona: def __init__(self, nombre): self.nombre = nombre p = Persona("Ana") print(dir(p)) # Muestra 'nombre' y métodos predeterminados
Nicolas Alpargatero
excelente explicación
Mario Alexander Vargas Celis
>>> dir(rea) ['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
Usando dir() en un diccionario encontré estos métodos
clear(): Remueve todos los elementos del diccionario
copy(): Copia todos los elementos de un diccionario y los guarda en otra variable
fromkeys(): Crea un diccionario y sus llaves son los items de una secuencia
keys = ['a', 'b', 'c', 'd', 'e'] vowels = dict.fromkeys(keys) print(vowels) # {'o': None, 'i': None, 'u': None, 'a': None, 'e': None}
get(): Devuelve el valor de una llave
items(): Devuelve una tupla con una lista de las llaves y valores del diccionario
sales = { 'apple': 2, 'orange': 3, 'grapes': 4 } print(sales.items()) # dict_items([('apple', 2), ('orange', 3), ('grapes', 4)])
keys(): Lo mismo que items(), pero con solo las llaves de un diccionario
values(): Lo mismo que items(), pero con solo los valores
pop(key): remueve y retorna un elemento de un diccionario por su llave
popitem(): remueve y retorna un item(key, value) de un diccionario
setdefault(key, default_value): retorna un valor de una llave, si no lo encuentra inserta una llave con un valor en el diccionario
update([]): Recibe una secuencia key/value y actualiza el diccionario actual con el diccionario recibido
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. Diccionario import 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=0 for comida_keys,comida_value in comida_conjunto.items(): contador+=1 print( '{}.-{}: {}'.format( contador,comida_keys, comida_value ) )