python_xrange和range的异同
1,range:
函数说明:range([start,]stop[,step]),根据start和stop的范围以及步长step生成一个序列
代码示例:
>>> range(5)
[0, 1, 2, 3, 4]
>>> range(2,5)
[2, 3, 4]
>>> range(2,5,2)
[2, 4]
2,xrange
函数说明:功能和range一样,所不同的是生成的不是一个数组而是一个生成器
代码示例:
>>> xrange(5)
xrange(5)
>>> list(xrange(5))
[0, 1, 2, 3, 4]
>>> xrange(2,5)
xrange(2, 5)
>>> list(xrange(2,5))
[2, 3, 4]
>>> xrange(2,5,2)
xrange(2, 6, 2) #注意和range(2,5,2)的区别
>>> list(xrange(2,5,2))
[2, 4]
3,主要区别:xrange比range的性能和效率更优
“xrange([start,] stop[, step])This function is very similar to range(), but returns an ``xrange object'' instead of a list. This is an opaque sequence type which yields the same values as the corresponding list, without actually storing them all simultaneously. The advantage of xrange() over range() is minimal (since xrange() still has to create the values when asked for them) except when a very large range is used on a memory-starved machine or when all of the range's elements are never used (such as when the loop is usually terminated with break).Note: xrange() is intended to be simple and fast. Implementations may impose restrictions to achieve this. The C implementation of Python restricts all arguments to native C longs ("short" Python integers), and also requires that the number of elements fit in a native C long.”
代码示例:
>>> a = range(0,10)
>>> print type(a)
<type 'list'>
>>> print a[1],a[2]
1 2
>>> a2 = xrange(0,10)
>>> print type(a2)
<type 'xrange'>
>>> print a2[1],a2[2]
1 2
所以,在Range的方法中,它会生成一个list的对象,但是在XRange中,它生成的却是一个xrange的对象。当返回的东西不是很大的时候,或者在一个循环里,基本上都是从头查到底的情况下,这两个方法的效率差不多。但是,当返回的东西很大,或者循环中常常会被Break出来的话,还是建议使用XRange,这样既省空间,又会提高效率。
python_xrange和range的异同的更多相关文章
- python中xrange和range的异同
本文章系转载,原文来源不详. range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列.range示 ...
- python中xrange与range的异同
转载自:http://ciniao.me/article.php?id=17 >>> range(5) [0, 1, 2, 3, 4] >>> range(1, 5 ...
- python面试题大全(二)
转载请注明出处http://www.cnblogs.com/goodhacker/p/3387027.html 1.python中类方法.类实例方法.静态方法有何区别? 区别: 类方法和静态方法都可以 ...
- python面试题大全
注:本面试题来源于网络,转载请注明来自http://www.cnblogs.com/goodhacker/p/3366618.html. 1. (1)python下多线程的限制以及多进程中传递参数的方 ...
- Python面试题(二)【转】
转载出处http://www.cnblogs.com/goodhacker/p/3387027.html 1.python中类方法.类实例方法.静态方法有何区别? 区别: 类方法和静态方法都可以被类和 ...
- python中range函数和xrange函数有什么异同?
http://ciniao.me/article.php?id=17 简单来说,range生成的是一个列表,而xrange生成的是一个生成器,而生成器在数组很大的时候能够比range更节省空间
- Python中range和xrange的异同之处
range 函数说明:range([start,] stop[, step]).依据start与stop指定的范围以及step设定的步长,生成一个序列. range演示样例: >> ...
- Python快速入门之与C语言异同
代码较长,建议使用电脑阅读本文. 10分钟入门Python 本文中使用的是Python3如果你曾经学过C语言,阅读此文,相信你能迅速发现这两种语言的异同,达到快速入门的目的.下面将开始介绍它们的异同. ...
- (数据科学学习手札03)Python与R在随机数生成上的异同
随机数的使用是很多算法的关键步骤,例如蒙特卡洛法.遗传算法中的轮盘赌法的过程,因此对于任意一种语言,掌握其各类型随机数生成的方法至关重要,Python与R在随机数底层生成上都依靠梅森旋转(twiste ...
随机推荐
- 《UNIX-Shell编程24学时教程》读书笔记chap7 变量
7.0 本章内容: 定义,访问,删除标题和数组变量:环境变量和shell变量 7.1 定义变量 标量一次只存储一个值[名字值对]:数组变量可以存储多个值. 以数字开头的变量名如1,2或11将保留为Sh ...
- 定义自己的代码风格CheckStyle简单使用
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE module PUBLIC "-/ ...
- iOS_12_tableViewCell的删除更新_红楼梦
终于效果图: Girl.h // // Girl.h // 12_tableView的增删改 // // Created by beyond on 14-7-27. // Copyright (c) ...
- bootstrap之鼠标操作
TouchLongClick package io.appium.android.bootstrap.handler; import android.os.SystemClock; import co ...
- Django-admin导出到表格
class AdminReport(admin.ModelAdmin): actions = ["saveexecl"] # 自定义的action(导出到excel表格) list ...
- 【TensorFlow-windows】(一)实现Softmax Regression进行手写数字识别(mnist)
博文主要内容有: 1.softmax regression的TensorFlow实现代码(教科书级的代码注释) 2.该实现中的函数总结 平台: 1.windows 10 64位 2.Anaconda3 ...
- Python标准库:内置函数set([iterable])
本函数是从迭代对象生成集合.集合能够添加或删除元素. 样例: #set() tset = set([1, 2, 3, 3, 4, 5, 6, 6]) print(tset) tset.add(20) ...
- Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果
http://blog.csdn.net/xiaanming/article/details/20934541
- ESXi 5.5 RTL9168E网卡驱动 找到网卡
如果你对专业服务器的价格望而却步,恰巧又想在普通的PC上安装ESXi,恰巧又是ESXi 5.5版本,那么这篇文章中提及的问题你可能会遇到,并能给你提供一些帮助. 1.成功安装重启以后提示“no boo ...
- HDFS被设计成能够在一个大集群中跨机器可靠地存储超大文件
HDFS被设计成能够在一个大集群中跨机器可靠地存储超大文件.它将每个文件存储成一系列的数据块,除了最后一个,所有的数据块都是同样大小的.为了容错,文件的所有数据块都会有副本.每个文件的数据块大小和副本 ...