Los métodos keys(), values() y items() de los diccionarios en Python
Hay tres métodos de diccionario que devolverán valores tipo lista de las claves, valores o ambas: keys()
, values()
y items()
. Los valores devueltos por estos métodos no son verdaderas listas: no pueden ser modificados y no tienen un método append()
. Pero estos tipos de datos (dict_keys
, dict_values
y dict_items
, respectivamente) pueden utilizarse en los bucles for
. Para ver cómo funcionan estos métodos, introduzca lo siguiente en el shell interactivo:
>>> spam = {'color': 'red', 'age': 42}
>>> for v in spam.values():
... print(v)
red
42
Aquí, un bucle for
itera sobre cada uno de los valores del diccionario de spam
. Un bucle for
también puede iterar sobre las claves o tanto las claves como los valores:
>>> for k in spam.keys():
... print(k)
color
age
>>> for i in spam.items():
... print(i)
('color', 'red')
('age', 42)
Cuando se utilizan los métodos keys()
, values()
y items()
, un bucle for
puede iterar sobre las claves, valores o pares clave-valor de un diccionario, respectivamente. Observe que los valores en el valor dict_items
devuelto por el método items()
son tuplas de la clave y el valor.
Si quieres una lista verdadera de uno de estos métodos, pasa su valor de retorno tipo lista a la función list()
. Introduzca lo siguiente en el shell interactivo:
>>> spam = {'color': 'red', 'age': 42}
>>> spam.keys()
dict_keys(['color', 'age'])
>>> list(spam.keys())
['color', 'age']
La línea list(spam.keys())
toma el valor de dict_keys
devuelto por keys()
y lo pasa a list()
, que devuelve un valor de lista de ['color', 'age']
.
También puede utilizar el truco de la asignación múltiple en un bucle for
para asignar la clave y el valor a variables separadas. Introduzca lo siguiente en el shell interactivo:
>>> spam = {'color': 'red', 'age': 42}
>>> for k, v in spam.items():
... print('Key: ' + k + ' Value: ' + str(v))
Key: age Value: 42
Key: color Value: red