首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dict.keys()返回预期的dict_keys类视图对象

dict.keys()返回预期的dict_keys类视图对象
EN

Stack Overflow用户
提问于 2014-01-09 13:16:29
回答 2查看 3K关注 0票数 3

我在Python2.7.3和Python3.2.3中运行了以下代码:

代码语言:javascript
复制
test_dict = {'foo':'bar'}
type(test_dict.keys())

在Python 2中,输出是:

代码语言:javascript
复制
<type 'list'>

在Python 3中:

代码语言:javascript
复制
<class 'dict_keys'>

但是Python3文档声明keys方法应该返回一个视图对象,那么为什么要返回一个类呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-09 13:26:09

keys返回了一个视图。返回类的是type

代码语言:javascript
复制
v this part doesn't return a view
type(test_dict.keys())
               ^this part returns a view

<class 'dict_keys'>test_dict.keys()返回的视图对象的类型。如果您想要视图本身,不要调用type

票数 2
EN

Stack Overflow用户

发布于 2014-01-09 13:27:16

Python2中的keys()返回一个列表,这很好--对于小型字典,但是对于大型字典,这需要时间。因此,在Python 3中,它现在是一个视图对象,它是可迭代的。这个视图对象实际上是一个名为dict_keys的类的类型。

调用type() on keys()返回项目的对象类型,这就是为什么在Python2中它是一个list,而在Python3中它是一个dict_keys

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21021360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档