1. 程式人生 > >Python3基礎9——range()函式

Python3基礎9——range()函式

Python3 range() 函式返回的是一個可迭代物件(型別是物件),而不是列表型別, 所以列印的時候不會列印列表

list() 函式是物件迭代器,可以把range()返回的可迭代物件轉為一個列表,返回的變數型別為列表。

函式語法:range(start,end,[step])

引數含義:start:計數從start開始。預設是從0開始。例如range(5)等價於range(0, 5);

                  end:計數到end結束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5

                  step:每次跳躍的間距,預設為1。例如:range(0, 5) 等價於 range(0, 5, 1)

range(m,n,k) m頭,預設為0; n尾 ;k步長預設為1,取頭不取尾;

當步長為正,頭大於尾,即m>n,k>0,返回為空,例如:range(6,1,2)

當步長為負,頭小於尾,即m<n,k<0,返回為空,例如:range(0,6,-1)

正序排序:

1 range(1,5,1) 
2 <<< 1,2,3,4,5
3
range(1,6,2) 4 <<< 1,3,5

倒序排列,如果是list,可以直接用reversed(seq),seq -- 要轉換的序列,可以是 tuple, string, list 或 range:

 1 range(6,0,-1)  
 2 <<< 6,5,4,3,2,1
 3 range(0,-5,-2) 
 4 <<< 0,-2,-4
 5  
 6 a = [1,2,3,4,5]
 7 for x in reversed(a):
 8      print x 
 9 <<< 5,4,3,2,1
10
11 a = [1,2,3,4,5] 12 for x in range(len(a)-1,-1,-1): 13 print(a[i]) 14 <<< 5,4,3,2,1

解釋:len(a)是5,所以range的表示式實際上是range(4,-1,-1)。即[4,-1),步長是-1,也就是說4是開始幷包含在裡面,所以要len(a)-1,然後-1是3,然後是2,然後是1,然後是0,-1是結尾,但不包含。所以輸出是a[4],a[3],a[2],a[1],a[0],這樣就做到了從尾到頭便利list。

切片:

1 L = [1, 2, 3]
2 print(L(0:2:-1))   
3 <<< [3, 2, 1]
4 print(L(::-1))     
5 <<< [3, 2, 1]