python2中xrang比range的优点_Python经典面试题:说说Python中xrange和range的区别?

昨晚一小伙后台问xrange和range有啥区别,讲了下他倒领悟的挺快,其实这也是你各面试Python岗位,经常会遇到的Python面试题,长个心眼哈,说不定明年3月你找工作就用上了。

废话不多说,开始今天的Python面试题目:

问:说说Python中xrange和range的区别?

答:range()和xrange()都是在循环中使用,输出结果一样。

range()返回的是一个list对象,而xrange返回的是一个生成器对象(xrange object)。

xrange()则不会直接生成一个list,而是每次调用返回其中的一个值,内存空间使用极少。因而性能非常好,所以尽量用xrange吧。

在python3 中没有xrange,只有range。range和python2 中的xrange()一样。

下面分别来说说这两者的用法:

1、range()

range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。

起点是start,终点是stop,但不包含stop,公差是step。start和step是可选项,没给出start时,从0开始;没给出step时,默认公差为1。

range示例:>>> range(10) #起点是0,终点是10,但是不包括10

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> range(1,10) #起点是1,终点是10,但是不包括10

[1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> range(1,10,2) #起点是1,终点是10,步长为2

[1, 3, 5, 7, 9]

>>> range(0,-10,-1) #起点是1,终点是10,步长为-1

[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

>>> range(0,-10,1) #起点是0,终点是-10,终点为负数时,步长只能为负数,否则返回空

[]

>>> range(0) #起点是0,返回空列表

[]

>>> range(1,0) #起点大于终点,返回空列表

[]

2、xrange()

xrange与range类似,只是返回的是一个"xrange object"生成器对象,而非数组list。

xrange示例:for i in range(0, 100):

print i

for i in xrange(0, 100):

print i

这两个基本上都是在循环的时候用:for i in range(0, 100):

print i

for i in xrange(0, 100):

print i

再一次提醒:xrange()函数在Python3中已经取消。在python3中range()这种实现被移除了,保留了xrange()的实现,且将xrange()重新命名成range()。所以Python3不能使用xrange(),只能使用range()。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值