range()函數配合循環一塊使用很方便,今天來整理一下這個函數的主要用法,以及幾個小例子
首先來看一下函數原型,非常簡單:
range(start,end [,step])
或者連start都省略掉:
range(end)
其中,start表示開始點,end表示結束點,真正結束的位置是end的前一個值,step表示步長。
例如:
print(list(range(1,5)))#list函數是將range的值列表化,這時候的輸出為 1,2,3,4 (沒有5!即不包括最后一個end的值)print(list(range(1,5,2)))#輸出結果是 [1, 3] ,步長為2,而且小于5
如果只傳入一個參數:
print(list(range(5)))#輸出結果是 [0, 1, 2, 3, 4] ,這時候默認從0開始
rang的這些使用,我們可以同列表的遍歷結合起來,比如對一個列表進行遍歷訪問:
#首先我用一個range生成一個列表,其中包含0~9 10個元素list1 =list(range(10))# #使用range的方式進行遍歷:for i in range(len(list1)): print(list1[i])#當然這種情況我們一般都是直接使用 for value in list1 就可以了#如果使用切片,訪問列表的一部分for i in range(int(len(list1)/2)): print(list1[i])#這樣我們就可以得到列表中前一半元素,其他部分同理
有的時候我們還會用到一個列表的逆序,使用range可以這樣:
list1 =list(range(10))for i in range(len(list1)-1,0,-1): print(list1[i])#注意這個地方開始的位置是len-1,因為我們使用的列表的下標,其實這里的使用與C語言是一致的,步長設置為-1#就相當于我們在for循環的 i--了
使用循環的方式,我們可以在每次循環中對數據進行一些操作,但是如果僅僅是得到這些數據,我們可以利用列表的切片slide來做,切片的方式非常靈活,例如比較簡單的:
list1 =list(range(10))print(list1[:])# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]print(list1[3:])# [3, 4, 5, 6, 7, 8, 9]print(list1[3:5])# [3, 4]print(list1[1:5:2])# [1, 3]
從這里我們可以看出切片的使用方式與range大同小異,都是三個參數,分別控制開始,結束以及步長,在range中我們可以使用 -1 ,那么同理,在切片中,同樣如此,對于每一個列表項,不僅僅有一個正向的序號,還有一個反向的序號,最后一個元素可以使用list1[-1]來表示,倒數第二個元素就是list1[-2]….:
print(list1[1:-1])# 這里表示從第一個元素到最后一個元素
如果逆序輸出的話:
print(list1[-1::-1])#或者簡記為:print(list1[::-1])
接下來是我之前遇到的一個問題,如何在一個列表中保存A-Z或者Z-A?
list2 = []for i in range(ord('A'),ord('A')+26): list2.append(chr(i))print(list2)list3 = [chr(ord('A')+x) for x in range(26)]print(list3)
新聞熱點
疑難解答