我在Python2.7.3和Python3.2.3中运行了以下代码:
test_dict = {'foo':'bar'}
type(test_dict.keys())在Python 2中,输出是:
<type 'list'>在Python 3中:
<class 'dict_keys'>但是Python3文档声明keys方法应该返回一个视图对象,那么为什么要返回一个类呢?
发布于 2014-01-09 13:26:09
keys返回了一个视图。返回类的是type:
v this part doesn't return a view
type(test_dict.keys())
^this part returns a view<class 'dict_keys'>是test_dict.keys()返回的视图对象的类型。如果您想要视图本身,不要调用type。
发布于 2014-01-09 13:27:16
Python2中的keys()返回一个列表,这很好--对于小型字典,但是对于大型字典,这需要时间。因此,在Python 3中,它现在是一个视图对象,它是可迭代的。这个视图对象实际上是一个名为dict_keys的类的类型。
调用type() on keys()返回项目的对象类型,这就是为什么在Python2中它是一个list,而在Python3中它是一个dict_keys。
https://stackoverflow.com/questions/21021360
复制相似问题