什么是dict_keys,dict_items和dict_values?

时间:2011-09-04 00:41:42

标签: python list dictionary

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

返回的三种方法的值类型为dict_keysdict_itemsdict_values

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

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

1 个答案:

答案 0 :(得分:31)

What's new in 2.7文件是介绍这些文件的地方。这些“观点”被引入(提议here)用于Python 3(并且向后移植到2.7,正如您所见),作为他们所指的dict片段中最好的全世界。

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