在Python 2中,viewvalues()/ viewitems()在itervalues()/ iteritems()上的性能权衡取舍是什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Python 2中,viewvalues()/ viewitems()在itervalues()/ iteritems()上的性能权衡取舍是什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含983字,纯文字阅读大概需要2分钟。
内容图文
![在Python 2中,viewvalues()/ viewitems()在itervalues()/ iteritems()上的性能权衡取舍是什么?](/upload/InfoBanner/zyjiaocheng/699/91bfa5b939da46e281c0447ffe313919.jpg)
显然,在几乎每个实例中,使用值,项和键都是Python 2.X的不良做法,因为你将分配一个你实际上并不需要的额外列表.因此,一段时间以来,推荐的最佳实践是使用iteritems / itervalues,如果要枚举dict的键,则使用内置的__iter__.
随着Python 3的键,值和项目的后端口到Python 2.7作为viewkeys,viewvalues和viewitems,我想知道view *系列函数与它们的iter *对应物的实际性能权衡是什么.是继续使用Python 2.6及更早版本的iter *函数的唯一原因,还是旧的iter *方法在某些上下文中比较新的view *方法更快?
解决方法:
以下是解决iterkeys与viewkeys的答案:https://stackoverflow.com/a/10190228/344143
摘要(带有一点背景故事):view *方法是数据的实时视图(在更新时会更新),而iter *和just-plain *更像是快照.
链接的回答者建议虽然视图* -flavored方法也可能具有较小的性能优势,但是backport可能存在兼容性问题,并建议继续在Python 2下使用iter * / *.
我的看法:如果你想要一个实时视图并且你在Python 2下,请使用view *;如果您只是想通过一组键/值/项目,请使用它*;如果你想暂停一下k / v / i的快照(或以某种非线性方式迭代),请使用*.让性能滑动,直到你在内循环中拾取它.
内容总结
以上是互联网集市为您收集整理的在Python 2中,viewvalues()/ viewitems()在itervalues()/ iteritems()上的性能权衡取舍是什么?全部内容,希望文章能够帮你解决在Python 2中,viewvalues()/ viewitems()在itervalues()/ iteritems()上的性能权衡取舍是什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。