什么是dict_keys,dict_items和dict_values?

xia*_*012 27 python dictionary list

当我使用collections.Counterviewkeys(),viewitems()和viewvalues()方法时,我遇到了这三种类型.

这三个方法返回的值是类型dict_keys,dict_itemsdict_values.

正如我所注意到的,它们是可迭代的.

但我的问题是,为什么这三种类型存在?或者他们的用途是什么?

Mik*_*ham 33

是什么在2.7新文档是一个地方,这些被引入.这些"视图"是为Python 3 引入的(在这里提出)(并且向后移植到2.7,如你所见),作为他们所指的dict片段中最好的全世界.

在我们使用keys/ values/ items方法之前简单地制作列表.这会通过复制dict的信息来浪费内存,而且我们有iterkeys/ itervalues/ iteritems方法不会浪费这些内存但不是很有特色(你唯一可以做的就是遍历它们,你只能这样做一次).这些新视图具有逻辑功能,例如设置操作,有效比较以及可多次迭代.