dict_keys、dict_items 和 dict_values 是什么?

30 投票
1 回答
20003 浏览
提问于 2025-04-17 01:22

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

这三种方法返回的值分别是 dict_keysdict_itemsdict_values 类型。

我发现它们都是可以被遍历的。

但我想知道,为什么会有这三种类型呢?它们有什么用处?

1 个回答

35

Python 2.7的新特性文档中介绍了这些“视图”。这些“视图”最初是为Python 3提出的(详细信息可以在这里找到),后来被移植到了2.7版本,目的是为了更好地处理字典中的数据。

在这之前,我们有keysvaluesitems这些方法,它们会生成列表。这种做法会浪费内存,因为它们会复制字典中的信息。还有iterkeysitervaluesiteritems这些方法,它们不会浪费内存,但功能比较简单(你只能遍历一次)。而这些新的视图则提供了更合理的功能,比如集合操作、高效的比较,以及可以多次遍历。

撰写回答