我在 Python 2.7.3 和 Python 3.2.3 中运行以下代码:
test_dict = {'foo':'bar'}
type(test_dict.keys())
在 Python 2 中,输出为:
<type 'list'>
在 Python 3 中:
<class 'dict_keys'>
但是 Python 3 文档指出
keys
方法应该返回
view object ,那么为什么要返回一个类?
请您参考如下方法:
keys()
在 Python 2 中返回一个列表,这很好 - 对于小型字典,但对于大型字典,这需要时间。所以在 Python 3 中,它现在是一个可迭代的 View 对象。这个 View 对象实际上是一种叫做 dict_keys
的类。 .
调用type()
在 keys()
返回项目的对象类型,这就是为什么在 Python2 中它是 list
,在 Python 3 中是 dict_keys
.