[Python] xrange和range的使用区别
2024-09-03 18:58:40
zhuan:https://blog.csdn.net/humanking7/article/details/45950967
range
函数说明:range([start,] stop[, step])
,根据start
与stop
指定的范围以及step设定的步长,生成一个列表。
eg:
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(2,10)
[2, 3, 4, 5, 6, 7, 8, 9]
>>> range(2,10,2)
[2, 4, 6, 8]
>>> type(_)
<type 'list'>
xrange
函数说明:和range
的用法完全相同,但是返回的是一个生成器。
eg:
>>> xrange(10)
xrange(10)
>>> xrange(2,10)
xrange(2, 10)
>>> xrange(2,10,2)
xrange(2, 10, 2)
>>> type(_)
<type 'xrange'>
>>> list(xrange(2, 10, 2))
[2, 4, 6, 8]
但是要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间,这两个基本上都是在循环的时候用。
>>> r = range(0,50)
>>> r
[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]
>>> type(r)
<type 'list'>
>>> print r[0],r[49]
0 49
>>> xr = xrange(0,50)
>>> xr
xrange(50)
>>> type(xr)
<type 'xrange'>
>>> print xr[0],xr[49]
0 49
>>> list(xr) == r
True
最新文章
- Linux 桌面系统字体配置要略
- 一道算法题目, 二行代码, Binary Tree
- java Http编程小结
- 如何使用highmaps制作中国地图
- selenium+python自动化之pycharm
- C++实现离散余弦变换(参数为Eigen矩阵)
- 使用socket实现信用卡程序和迷你购物商城
- C#_dropdownlist_1
- Haskell 输入和输出
- Android弹性ScrollView
- Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1) 错误 解决方案(android-ndk)
- linux伪文件与proc文件
- 【C++】浅谈三大特性之一继承(一)
- 将电脑文件复制到vm虚拟机中,然后安装步骤
- POJ 1486二分图的必要边
- Git详解及github与gitlab使用
- 初学python之路-day06
- Linux常用监控命令简介 - top
- delphi异常捕获try except语句 和 try finally语句用法
- python 学习笔记之@property
热门文章
- TensorFlow-GPU环境配置之一——安装Ubuntu双系统
- 【CV论文阅读】Unsupervised deep embedding for clustering analysis
- win7如何更改语言教程
- [TypeScript] Define Custom Type Guard Functions in TypeScript
- 关于android中的单位(dp、sp)
- HDU 5407 CRB and Candies(LCM +最大素因子求逆元)
- web 开发之js---JS变量也要注意初始化
- VELT-0.1.6开发:载入根文件系统
- iOS开发——常见BUG——导航控制器中的子控制器设置StatusBar状态失效的问题
- java Bean及其使用