我在使用的时候遇到过这三种类型collections.Counter
的 viewkeys()、viewitems() 和 viewvalues() 方法。
这三个方法返回的值都是类型dict_keys
, dict_items
and dict_values
.
正如我所注意到的,它们是可迭代的。
但我的问题是,为什么会存在这三种类型?或者说它们的用途是什么?
The 2.7 中的新增内容 http://docs.python.org/dev/whatsnew/2.7.html#pep-3106-dictionary-views文档是介绍这些内容的地方。这些“意见”被提出(建议here http://www.python.org/dev/peps/pep-3106/)对于 Python 3(并且向后移植到 2.7,如您所见)作为它们引用的字典片段的最佳工具。
在我们拥有之前keys
/values
/items
简单地制作列表的方法。这通过复制字典的信息浪费了内存,我们有iterkeys
/itervalues
/iteritems
没有浪费内存但功能不是很强的方法(你唯一能做的就是迭代它们,而且你只能这样做一次)。这些新视图具有逻辑特性,例如集合操作、高效比较以及可多次迭代。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)