
Alex Bossi
Preguntauna pregunta, solo se puede recorrer un diccionario en un ciclo for con “items”? por que si no lo uso me salta el error “dict object is not callable”
- Si quieres obtener únicamente los keys del diccionario, método keys():
- Si quieres obtener únicamente los valores (values) del diccionario, método values():
- Otra forma de recorrer sería usando un iterador, pero no es el algo tan común de encontrar. Esto:

Bayron Danilo Ortiz Foronda
Hola alexisbossi, no es la única forma de recorrer un diccionario, pero sí muy útil a la hora de obtener tanto el key como el value al mismo tiempo dentro de un ciclo.
Existen otros métodos de los diccionarios, que se pueden utilizar, como por ejemplo: Tengo el siguiente diccionario de colores en inglés y español.
>>> colors = {'green': 'verde', 'yellow': 'amarillo', 'red': 'rojo', 'brown': 'marrón'}
si únicamente se desea obtener el valor de una key específica, usarías:
>>> print(colors['green']) verde
o también el método get()
>>> print(colors.get('red')) >>> rojo
una recomendación en este último caso, es siempre usar el método get() , ya que evita que obtengas una excepción al no encontrar la key pasada por parámetro. Simplemente si el key no existe devuelve None.
Partiendo del diccionario colors, también podrias iterarlo de las siguientes formas:
>>> for k in colors.keys(): ... print(k) ... green yellow red brown
o también, al poner directamente el diccionario sobre el ciclo for, iterará automáticamente sobre las keys del mismo:
>>> for k in colors: ... print(k) ... green yellow red brown
si se desea obtener el valor, se debe pasar el key al método get()
>>> for k in colors.keys(): ... print('key:', k, '|', 'value:', colors.get(k)) ... key: green | value: verde key: yellow | value: amarillo key: red | value: rojo key: brown | value: marrón
>>> for v in colors.values(): ... print(v) ... verde amarillo rojo marrón
>>> iter_color = iter(colors) >>> while True: ... try: ... print(next(iter_color)) ... except StopIteration: ... break ... green yellow red brown
Espero haber ayudado a despejar en algo tu duda. Un saludo y continúa aprendiendo.