gpt4 book ai didi

python - 在 Python 2 中,viewvalues()/viewitems() 相对于 itervalues()/iteritems() 的性能权衡是什么?

转载 作者:太空狗 更新时间:2023-10-29 21:37:24 30 4
gpt4 key购买 nike

显然,在 Python 2.X 中,几乎在每个实例中使用 valuesitemskeys 都是不好的做法,因为您将分配一个你实际上不需要的额外列表。因此,有一段时间,推荐的最佳实践是使用 iteritems/itervalues,如果你想使用内置的 __iter__枚举 dict 的键。

通过将 Python 3 的 keysvaluesitems 反向移植到 Python 2.7 作为 viewkeysviewvaluesviewitems,我想知道 view* 函数系列与其 iter 的实际性能权衡是什么* 对应。是继续使用针对 Python 2.6 及更早版本的 iter* 函数的唯一原因,还是旧的 iter* 方法比新的 view 更快* 某些上下文中的方法?

最佳答案

这里有一个解决 iterkeysviewkeys 的答案: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/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com