- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
显然,在 Python 2.X 中,几乎在每个实例中使用 values
、items
和 keys
都是不好的做法,因为您将分配一个你实际上不需要的额外列表。因此,有一段时间,推荐的最佳实践是使用 iteritems
/itervalues
,如果你想使用内置的 __iter__
枚举 dict
的键。
通过将 Python 3 的 keys
、values
和 items
反向移植到 Python 2.7 作为 viewkeys
,viewvalues
和 viewitems
,我想知道 view*
函数系列与其 iter 的实际性能权衡是什么*
对应。是继续使用针对 Python 2.6 及更早版本的 iter*
函数的唯一原因,还是旧的 iter*
方法比新的 view 更快*
某些上下文中的方法?
最佳答案
这里有一个解决 iterkeys
与 viewkeys
的答案:https://stackoverflow.com/a/10190228/344143
总结(有一点背景故事):view*
方法是对数据的实时 View (将在更新时更新),而 iter*
和只是-普通的 *
更像是快照。
链接的回答者建议,虽然 view*
风格的方法也可能具有较小的性能优势,但可能存在向后移植的兼容性问题,并建议继续使用 iter*
/*
在 Python 2 下。
我的看法:如果你想要实时 View 并且你使用的是 Python 2,请使用 view*
;如果您只想快速浏览一组键/值/项,请使用 iter*
;如果您想暂时保留 k/v/i 的快照(或以某种非线性方式迭代),请使用 *
。让性能下滑,直到您在内循环中恢复它。
关于python - 在 Python 2 中,viewvalues()/viewitems() 相对于 itervalues()/iteritems() 的性能权衡是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21783763/
为什么 Comparison #1 和 Comparison #2 的评估结果不同? list = [{'objItem':{'key':'exists', 'a':'aaa', 'b':'bbb',
我想知道在不依赖键的情况下修改 Python 字典的值是否可以: # d is some dictionary containing classes I wrote for v in d.iterva
我有一个像这样初始化的字典: tab = {'Mike': 0, 'Chad': 15, 'Taylor': 2} 我希望能够将整数添加到字典中的每个值。 例如,添加 5 后,字典应如下所示: {'M
显然,在 Python 2.X 中,几乎在每个实例中使用 values、items 和 keys 都是不好的做法,因为您将分配一个你实际上不需要的额外列表。因此,有一段时间,推荐的最佳实践是使用 it
我是一名优秀的程序员,十分优秀!