Python xrange与range的区别
2016-05-05 12:54
746 查看
range 前面小节已经说明了,range([start,] stop[,step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。
比如:
xrange 用法与 range
完全相同,所不同的是生成的不是一个list对象,而是一个生成器。
由上面的示例可以知道:要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间。
xrange 和range 这两个基本上都是在循环的时候用。
这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象:
输出结果:
而xrange则不会直接生成一个list,而是每次调用返回其中的一个值:
输出结果:
所以xrange做循环的性能比range好,尤其是返回很大的时候。尽量用xrange吧,除非你是要返回一个列表。
from:http://www.nowamagic.net/academy/detail/1302446
比如:
1 | >>> range ( 5 ) |
2 | [ 0 , 1 , 2 , 3 , 4 ] |
3 | >>> range ( 1 , 5 ) |
4 | [ 1 , 2 , 3 , 4 ] |
5 | >>> range ( 0 , 6 , 2 ) |
6 | [ 0 , 2 , 4 ] |
完全相同,所不同的是生成的不是一个list对象,而是一个生成器。
01 | >>> xrange ( 5 ) |
02 | xrange ( 5 ) |
03 | >>> list ( xrange ( 5 )) |
04 | [ 0 , 1 , 2 , 3 , 4 ] |
05 | >>> xrange ( 1 , 5 ) |
06 | xrange ( 1 , 5 ) |
07 | >>> list ( xrange ( 1 , 5 )) |
08 | [ 1 , 2 , 3 , 4 ] |
09 | >>> xrange ( 0 , 6 , 2 ) |
10 | xrange ( 0 , 6 , 2 ) |
11 | >>> list ( xrange ( 0 , 6 , 2 )) |
12 | [ 0 , 2 , 4 ] |
xrange 和
1 | for i in range ( 0 , 100 ): |
2 | i |
3 |
4 | for i in xrange ( 0 , 100 ): |
5 | i |
1 | a = range ( 0 , 100 ) |
2 | type (a) |
3 | a |
4 | a[ 0 ], a[ 1 ] |
1 | < type 'list' > |
2 | [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 , 48 , 49 , 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , 63 , 64 , 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 , 75 , 76 , 77 , 78 , 79 , 80 , 81 , 82 , 83 , 84 , 85 , 86 , 87 , 88 , 89 , 90 , 91 , 92 , 93 , 94 , 95 , 96 , 97 , 98 , 99 ] |
3 | 0 1 |
1 | a = xrange ( 0 , 100 ) |
2 | type (a) |
3 | a |
4 | a[ 0 ], a[ 1 ] |
1 | < type 'xrange' > |
2 | xrange ( 100 ) |
3 | 0 1 |
from:
相关文章推荐
- 204. Count Primes [easy] (Python)
- 奇怪的Python本地线程Python's Thread Locals Are Weird
- Python 的闭包和装饰器
- 如何过渡至 Python 3
- Python 阅读书目推荐
- Python 内部:可调用对象是如何工作的
- Python 魔术方法指南
- Python OpenCV Tutorial Introduction图像处理教程
- [乐意黎原创]python 的安装和配置
- python 简单时间处理
- python学习2016.3.31
- Python学习2016.3.30
- python学习笔记-Day024 - restful 官方文档
- python正则方法
- python中对文件、文件夹操作
- 控制鼠标键盘 python pywin32 键位查询 win32api
- 步步学习python之环境安装:Vagrant+Ubuntu+Emacs+Virtualenv+Python3开发环境的搭建(Mac电脑下)4
- Python日志记录(logging)
- 定时给ta讲笑话python3.x
- python setup.py安装与卸载