python range 步长为负数_【Python面试】 说说Python中xrange和range的区别?
公眾號新增加了一個欄目,就是每天給大家解答一道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示例:
>>> 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]這兩個基本上都是在循環的時候用:
for?i in?range(0, 100):print?ifor?i in?xrange(0, 100):print?i
再一次提醒:xrange()函數在Python3中已經取消。在python3中range()這種實現被移除了,保留了xrange()的實現,且將xrange()重新命名成range()。所以Python3不能使用xrange(),只能使用range()。
如果對于參考答案有不認同的,大家可以在評論區指出和補充,歡迎留言!
更多題目:
1、談談對 Python 和其他語言的區別?
2、談談對 Python3 和 Python2 的區別?
3、Python 的特點和優點是什么?
4、說說Python解釋器種類以及特點?
5、說說4種常用編碼的區別?
6、說說Python面向對象三大特性?
7、說說Python中有幾種數據類型?
關注小猿公眾號,每天學習一道題
總結
以上是生活随笔為你收集整理的python range 步长为负数_【Python面试】 说说Python中xrange和range的区别?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab 连接数组,matlab数组
- 下一篇: c++类和对象初步