2011-09-04 260 views
23

當我使用collections.Counter的viewkeys(),viewitems()和viewvalues()方法時,我遇到了這三種類型。什麼是dict_keys,dict_items和dict_values

這三種方法返回的值的類型爲dict_keys,dict_itemsdict_values

它們是可迭代的,因爲我已經注意到了。

但我的問題是:

  • 爲什麼這三種類型的存在嗎?或者他們的用法是什麼?

回答

28

What's new in 2.7文件是這些介紹的一個地方。引入了這些「視圖」(提議here)Python 3(並且回溯到2.7,正如你所看到的),以作爲他們所引用的字典的最好的世界。

之前,我們有簡單列出的方法keys/values/items。這會通過複製字典的信息而浪費內存,我們使用的方法不會浪費這些內存,但並不是非常有效(您唯一可以做的就是遍歷它們,而且您只能這樣做一次)。這些新視圖具有邏輯功能,例如設置操作,高效比較以及多次迭代。

相關問題