Python 3.x dict.keys()返回dict_keys类-需要查看对象
我在Python 2.7.3和Python 3.2.3中运行以下代码:Python 3.x dict.keys()返回dict_keys类-需要查看对象,python-3.x,dictionary,Python 3.x,Dictionary,我在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'> 然而,Python3文档指出,keys方法应该返回一个,那么为什么要返回一个类呢?keys返回了一个视图。返回类的是type: v this part doesn't
test_dict = {'foo':'bar'}
type(test_dict.keys())
在Python 2中,输出是:
<type 'list'>
在Python 3中:
<class 'dict_keys'>
然而,Python3文档指出,
keys
方法应该返回一个,那么为什么要返回一个类呢?keys
返回了一个视图。返回类的是type
:
v this part doesn't return a view
type(test_dict.keys())
^this part returns a view
是由test\u dict.keys()
返回的视图对象的类型。如果需要视图本身,请不要在Python 2中调用type
keys()
,它会返回一个列表,对于小型词典来说这很好,但是对于大型词典来说这需要时间。所以在Python3中,它现在是一个视图对象,它是可编辑的。这个视图对象实际上是一种叫做dict\u keys
的类
在
keys()
上调用type()
将返回该项所属对象的类型,这就是为什么在Python2中它是一个列表,而在Python3中它是一个dict\u keys
我不理解这个问题的原因<代码>键
不返回类,它返回类的实例。我认为在使用类型
时存在一些误解。相比之下,type(1)
返回
,1也不是一个类。我想你是对的,我不理解typedict\u keys
是一个dict视图类型。这样的类型不止一种test\u dict.values()
将返回一个dict\u values
实例,test\u dict.items()
返回一个dict\u items
实例。