python中range()与xrange()用法分析
本文实例讲述了python中range()与xrange()用法。分享给大家供大家参考,具体如下:
据说range比xrange开销要大,原因是range会直接生成一个list对象,而xrange每次调用返回其中的一个值(参考:http://www.jb51.net/article/50072.htm)。于是好奇做了个小小的测试,比较两个函数性能到底有多大差别。
(1)测试代码
#!/usr/bin/env python from datetime import * def test_range(): c1=0 t1 = datetime.now() for i in range(0,100000): c1 += 1 print datetime.now()-t1 def test_xrange(): c1=0 t1 = datetime.now() for i in xrange(0,100000): c1 += 1 print datetime.now()-t1 if __name__ == '__main__': test_range() test_xrange()
(2)运行结果
(3)小结
从上图的三次运行结果可以看出,range在相同计算量下用时比xrange多了70%左右。另外,在不同的计算量情况下,用时基本也维持在这个比例。因此,如果并不需要返回list对象的话,xrange会是个好选择。
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《Python URL操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
相关推荐
-
python开发中range()函数用法实例分析
本文实例讲述了python开发中range()函数用法.分享给大家供大家参考,具体如下: python中的range()函数的功能很强大,所以我觉得很有必要和大家分享一下 就好像其API中所描述的: If you do need to iterate over a sequence of numbers, the built-in function range() comes in handy. It generates arithmetic progressions 下面是我做的demo: #
-
python使用range函数计算一组数和的方法
本文实例讲述了python使用range函数计算一组数和的方法.分享给大家供大家参考.具体如下: sum = 0 numbers = range(1,10) for i in numbers: sum += i print(sum) 运行结果为:45 希望本文所述对大家的Python程序设计有所帮助.
-
python进阶教程之循环相关函数range、enumerate、zip
在"循环"一节,我们已经讨论了Python基本的循环语法.这一节,我们将接触更加灵活的循环方式. range() 在Python中,for循环后的in跟随一个序列的话,循环每次使用的序列元素,而不是序列的下标. 之前我们已经使用过range()来控制for循环.现在,我们继续开发range的功能,以实现下标对循环的控制: 复制代码 代码如下: S = 'abcdefghijk' for i in range(0,len(S),2): print S[i] 在该例子中,我们利用l
-
Python的randrange()方法使用教程
choice()方法从一个列表,元组或字符串返回一个随机项. 语法 以下是choice()方法的语法: choice( seq ) 注意:此函数是无法直接访问的,所以我们需要导入random模块,然后我们需要使用random对象来调用这个函数. 参数 seq -- 这可能是一个列表,元组或字符串... 返回值 该方法返回一个随机项. 例子 下面的例子显示了choice()方法的使用. #!/usr/bin/python import random print "choice([1, 2, 3,
-
python中xrange和range的区别
range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列.range示例: 复制代码 代码如下: >>> range(5)[0, 1, 2, 3, 4]>>> range(1,5)[1, 2, 3, 4]>>> range(0,6,2)[0, 2, 4] xrange 函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器.xrang
-
python 切片和range()用法说明
理解切片基本用法: 首先需要明白,可迭代对象,按照正数索引(正序)是从0开始的,按照负数索引(逆序)是从-1开始的.>>> astring = 'Hello world'>>> astring[0:2]'He'>>> 可见,这种情况下,给切片操作一个起始位置,和一个终止位置,则显示从起始位置开始(包括起始位置)到终止位置(不包括终止位置)之间的内容: 在有负数索引的情况下,是类似的,只要确定终止位置的内容: >>> astring[0
-
python中xrange用法分析
本文实例讲述了python中xrange用法.分享给大家供大家参考.具体如下: 先来看如下示例: >>> x=xrange(0,8) >>> print x xrange(8) >>> print x[0] 0 >>> print x[7] 7 >>> print x[8] Traceback (most recent call last): File "<stdin>", line
-
python中range()与xrange()用法分析
本文实例讲述了python中range()与xrange()用法.分享给大家供大家参考,具体如下: 据说range比xrange开销要大,原因是range会直接生成一个list对象,而xrange每次调用返回其中的一个值(参考:http://www.jb51.net/article/50072.htm).于是好奇做了个小小的测试,比较两个函数性能到底有多大差别. (1)测试代码 #!/usr/bin/env python from datetime import * def test_range
-
深入理解Python中range和xrange的区别
我们已经给大家介绍过range和xrange的区别的基础知识,有兴趣的朋友可以参阅: python中xrange和range的区别 python中range()与xrange()用法分析 本次小编给大家带来的是深入理解range和xrange之间的区别. 两种用法介绍如下: 1.range([start], stop[, step]) 返回等差数列.构建等差数列,起点是start,终点是stop,但不包含stop,公差是step. start和step是可选项,没给出start时,从0开始:没给
-
浅谈Python中range和xrange的区别
range()是Python的内置函数,用于创建整数的列表,可以生成递增或者递减的数列.xrange也有相同的功能, 今天来看下它们之间的不同. range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列. range示例: >>> range(6) [0, 1, 2, 3, 4, 5] >>> range(1,6) [1, 2, 3, 4, 5] >>> r
-
详解Python中range()与xrange()的区别
目录 前言 返回类型 记忆 操作使用 Speed 前言 range() 和 xrange() 是两个函数,可用于在 Python的 for 循环中迭代一定次数.在 Python 3 中,没有 xrange,但 range 函数的行为类似于 Python 2 中的 xrange.如果要编写可在 Python 2 和 Python 3 上运行的代码,则应使用 range(). range() – 这将返回一个范围对象(一种可迭代的类型). xrange() – 此函数返回生成器对象,该生成器对象
-
Python中range函数的基本用法完全解读
目录 前言 1.range() 是什么? 2. 为什么range()不生产迭代器? 3.range 类型是什么? 4.小结 附:Python的range()函数的历史 总结 前言 迭代器是 23 种设计模式中最常用的一种(之一),在 Python 中随处可见它的身影,我们经常用到它,但是却不一定意识到它的存在.在关于迭代器的系列文章中(链接见文末),我至少提到了 23 种生成迭代器的方法.有些方法是专门用于生成迭代器的,还有一些方法则是为了解决别的问题而“暗中”使用到迭代器. 在系统学习迭代器之
-
对Python中range()函数和list的比较
使用Python的人都知道range()函数和list很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range()和list. >>> range(1,5) #代表从1到5(不包含5) [1, 2, 3, 4] >>> range(1,5,2) #代表从1到5,间隔2(不包含5) [1, 3] >>> range(5) #代表从0到5(不包含5) [0, 1, 2, 3, 4] 再看看list的操作: array = [1,
-
python中引用与复制用法实例分析
本文实例讲述了python中引用与复制用法.分享给大家供大家参考.具体分析如下: 在python中,任何不可变对象是传值的,而可变对象是传引用的. 不管是向函数传递参数或者是任何形式的对象复制来说,不可变对象(比如整数,字符串)被真正复制,而可变对象只是复制了一个对他们的引用,即在内存中只有一份对象,而引用两份. a=b 这样的赋值,就会创建对b的引用,对于象数字和字符串这样的不可变的对象,这种赋值实际是创建了b的一个副本 >>> a='hello' >>> b=a
-
python中sys.argv参数用法实例分析
本文实例讲述了python中sys.argv参数用法.分享给大家供大家参考.具体分析如下: 在学python的过程中,一直弄不明白sys.argv[]的意思,虽知道是表示命令行参数,但还是有些稀里糊涂的感觉. 今天又好好学习了一把,总算是大彻大悟了. Sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始,以下两个例子说明: 1.使用sys.argv[]的一简单实例 import sys,os os.system(sys.argv[1]) 这个例
-
python中list循环语句用法实例
本文实例讲述了python中list循环语句用法.分享给大家供大家参考.具体用法分析如下: Python 的强大特性之一就是其对 list 的解析,它提供一种紧凑的方法,可以通过对 list 中的每个元素应用一个函数,从而将一个 list 映射为另一个 list. 实例 复制代码 代码如下: a = ['cat', 'window', 'defenestrate'] for x in a: print x, len(x) for x in [1, 2, 3]: print x,
-
Python中for循环控制语句用法实例
本文实例讲述了Python中for循环控制语句用法.分享给大家供大家参考.具体分析如下: 第一个:求 50 - 100 之间的质数 import math for i in range(50, 100 + 1): for j in range(2, int(math.sqrt(i)) + 1): if i % j == 0: break else: print i 输出如下: 53 59 61 67 71 73 79 83 89 97 第二个:把else的位置与if处于同一缩进. import
随机推荐
- Erlang中的注册进程使用实例
- 详解vue-router 2.0 常用基础知识点之导航钩子
- JavaScript中各数制转换全面总结
- android读写中文如何避免乱码详解
- 提高ASP页面执行效率的方法分析
- php 连接mssql数据库 初学php笔记
- python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
- node.js中的http.createServer方法使用说明
- Array.prototype.slice 使用扩展
- JavaScript预解析及相关技巧分析
- Nginx配合Apache或Tomcat的动静分离基本配置实例
- 使用PDB简单调试Python程序简明指南
- php文件上传类完整实例
- 用JQuery调用Session的实现代码
- div+css+js模拟tab切换效果 事件绑定 IE,firefox兼容
- 《C++ primer plus》读书笔记(二)
- 一个小示例告诉你Python语言的优雅之处
- Android自定义view实现进度条指示效果
- Android UTF-8转码实例详解
- Android Studio 引用外部依赖时报错的解决方法