python range 步长为负数_【Python面试】 说说Python中xrange和range的区别?
公眾號(hào)新增加了一個(gè)欄目,就是每天給大家解答一道Python常見(jiàn)的面試題,反正每天不貪多,一天一題,正好合適,只希望這個(gè)面試欄目,給那些正在準(zhǔn)備面試的同學(xué),提供一點(diǎn)點(diǎn)幫助!
小猿會(huì)從最基礎(chǔ)的面試題開(kāi)始,每天一題。如果參考答案不夠好,或者有錯(cuò)誤的話(huà),麻煩大家可以在留言區(qū)給出自己的意見(jiàn)和討論,大家是要一起學(xué)習(xí)的 。
廢話(huà)不多說(shuō),開(kāi)始今天的題目:
問(wèn):說(shuō)說(shuō)Python中xrange和range的區(qū)別?
答:range()和xrange()都是在循環(huán)中使用,輸出結(jié)果一樣。
range()返回的是一個(gè)list對(duì)象,而xrange返回的是一個(gè)生成器對(duì)象(xrange object)。
xrange()則不會(huì)直接生成一個(gè)list,而是每次調(diào)用返回其中的一個(gè)值,內(nèi)存空間使用極少。因而性能非常好,所以盡量用xrange吧。
在python3 中沒(méi)有xrange,只有range。range和python2 中的xrange()一樣。
下面分別來(lái)說(shuō)說(shuō)這兩者的用法:
1、range()
range 函數(shù)說(shuō)明:range([start,] stop[, step]),根據(jù)start與stop指定的范圍以及step設(shè)定的步長(zhǎng),生成一個(gè)序列。
起點(diǎn)是start,終點(diǎn)是stop,但不包含stop,公差是step。start和step是可選項(xiàng),沒(méi)給出start時(shí),從0開(kāi)始;沒(méi)給出step時(shí),默認(rèn)公差為1。
range示例:
>>> range(10) #起點(diǎn)是0,終點(diǎn)是10,但是不包括10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> range(1,10) #起點(diǎn)是1,終點(diǎn)是10,但是不包括10
[1, 2, 3, 4, 5, 6, 7, 8, 9]>>> range(1,10,2) #起點(diǎn)是1,終點(diǎn)是10,步長(zhǎng)為2
[1, 3, 5, 7, 9]>>> range(0,-10,-1) #起點(diǎn)是1,終點(diǎn)是10,步長(zhǎng)為-1
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]>>> range(0,-10,1) #起點(diǎn)是0,終點(diǎn)是-10,終點(diǎn)為負(fù)數(shù)時(shí),步長(zhǎng)只能為負(fù)數(shù),否則返回空
[]>>> range(0) #起點(diǎn)是0,返回空列表
[]>>> range(1,0) #起點(diǎn)大于終點(diǎn),返回空列表
[]
2、xrange()
xrange與range類(lèi)似,只是返回的是一個(gè)"xrange object"生成器對(duì)象,而非數(shù)組list。
xrange示例:
>>> xrange(6)xrange(6) # 注意:這里輸出的和range就不同嘍>>> list(xrange(6))
[0, 1, 2, 3, 4, 5]>>> xrange(1, 6)
xrange(1, 6)>>> list(xrange(1, 6))
[1, 2, 3, 4, 5]>>> xrange(0,6,2)
xrange(0, 6, 2)>>> list(xrange(0, 6, 2))
[0, 2, 4]這兩個(gè)基本上都是在循環(huán)的時(shí)候用:
for?i in?range(0, 100):print?ifor?i in?xrange(0, 100):print?i
再一次提醒:xrange()函數(shù)在Python3中已經(jīng)取消。在python3中range()這種實(shí)現(xiàn)被移除了,保留了xrange()的實(shí)現(xiàn),且將xrange()重新命名成range()。所以Python3不能使用xrange(),只能使用range()。
如果對(duì)于參考答案有不認(rèn)同的,大家可以在評(píng)論區(qū)指出和補(bǔ)充,歡迎留言!
更多題目:
1、談?wù)剬?duì) Python 和其他語(yǔ)言的區(qū)別?
2、談?wù)剬?duì) Python3 和 Python2 的區(qū)別?
3、Python 的特點(diǎn)和優(yōu)點(diǎn)是什么?
4、說(shuō)說(shuō)Python解釋器種類(lèi)以及特點(diǎn)?
5、說(shuō)說(shuō)4種常用編碼的區(qū)別?
6、說(shuō)說(shuō)Python面向?qū)ο笕筇匦?
7、說(shuō)說(shuō)Python中有幾種數(shù)據(jù)類(lèi)型?
關(guān)注小猿公眾號(hào),每天學(xué)習(xí)一道題
總結(jié)
以上是生活随笔為你收集整理的python range 步长为负数_【Python面试】 说说Python中xrange和range的区别?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: matlab 连接数组,matlab数组
- 下一篇: c++类和对象初步