04-keys()、values()和items()方法
5.1.2 keys()、values()和items()方法
有3个字典方法,它们将返回类似列表的值,分别对应于字典的键、值和键-值对: keys()
、 values()
和 items()
方法。这些方法返回的值不是真正的列表,它们不能被修改,没有 append()
方法。但这些数据类型(分别是 dict_keys
、 dict_values
和 dict_items
)可以用于 for
循环。为了了解这些方法的工作原理,请在交互式环境中输入以下代码:
>>> spam = {'color': 'red', 'age': 42}
>>> for v in spam.values():
... print(v)
red
42
这里, for
循环迭代了 spam
字典中的每个值。 for
循环也可以迭代每个键或者键-值对:
>>> for k in spam.keys():
... print(k)
color
age
>>> for i in spam.items():
... print(i)
('color', 'red')
('age', 42)
利用 keys()
、 values()
和 items()
方法,循环分别可以迭代键、值和键-值对。请注意, items()
方法返回的 dict_items
值包含的是键和值的元组。
如果希望通过这些方法得到一个真正的列表,就把类似列表的返回值传递给 list()
函数。在交互式环境中输入以下代码:
>>> spam = {'color': 'red', 'age': 42}
>>> spam.keys()
dict_keys(['color', 'age'])
>>> list(spam.keys())
['color', 'age']
list(spam.keys())
代码行接收 keys()
函数返回的 dict_keys
值,并传递给 list()函数
,然后返回一个列表,即 ['color', 'age']
。
也可以利用多重赋值的技巧,在 for
循环中将键和值赋给不同的变量。在交互式环境中输入以下代码:
>>> 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