dict_keys、dict_items 和 dict_values 是什么?
我在使用 collections.Counter
的 viewkeys()
、viewitems()
和 viewvalues()
方法时,遇到了这三种类型。
这三种方法返回的值分别是 dict_keys
、dict_items
和 dict_values
类型。
我发现它们都是可以被遍历的。
但我想知道,为什么会有这三种类型呢?它们有什么用处?
1 个回答
35
Python 2.7的新特性文档中介绍了这些“视图”。这些“视图”最初是为Python 3提出的(详细信息可以在这里找到),后来被移植到了2.7版本,目的是为了更好地处理字典中的数据。
在这之前,我们有keys
、values
和items
这些方法,它们会生成列表。这种做法会浪费内存,因为它们会复制字典中的信息。还有iterkeys
、itervalues
和iteritems
这些方法,它们不会浪费内存,但功能比较简单(你只能遍历一次)。而这些新的视图则提供了更合理的功能,比如集合操作、高效的比较,以及可以多次遍历。