栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python-你是否应该始终偏爱xrange()而不是range()?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python-你是否应该始终偏爱xrange()而不是range()?

对于性能而言,尤其是在较大范围内进行迭代时,

xrange()
通常会更好。但是,在某些情况下,你可能更喜欢
range()

  • 在Python 3,range()做什么

    xrange()
    用做的,
    xrange()
    不存在。如果要编写可在Python 2和Python 3上运行的代码,则不能使用
    xrange()

  • range()
    在某些情况下实际上可以更快-例如。如果多次重复相同的序列。 xrange()每次都必须重新构造整数对象,但是range()将拥有真正的整数对象。(但是,在内存方面,它总是会表现得更差)

  • xrange()
    在需要真实列表的所有情况下都不可用。例如,它不支持切片或任何列表方法。

[编辑]有

range()
几篇文章提到2to3工具将如何升级。为了记录在案,这里是对一些用法示例运行该工具的输出
range()
xrange()

RefactoringTool: Skipping implicit fixer: bufferRefactoringTool: Skipping implicit fixer: idiomsRefactoringTool: Skipping implicit fixer: ws_comma--- range_test.py (original)+++ range_test.py (refactored)@@ -1,7 +1,7 @@ for x in range(20):-    a=range(20)+    a=list(range(20))     b=list(range(20))     c=[x for x in range(20)]     d=(x for x in range(20))-    e=xrange(20)+    e=range(20)

如你所见,当在for循环或理解中使用时,或已经用list()包装的地方,范围保持不变。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/407623.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号