選單

python從零到獨立建設網站,基礎知識,你學過range()函式嗎?

python從零到獨立建設網站,基礎知識,你學過range()函式嗎?

python從零到獨立建設網站,基礎知識,你學過range()函式嗎?

在python中,如果你確實需要遍歷一個數字序列,內建函式range()會派上用場。它生成算術級數:

for i in range(10):

print(i)

輸出如下:

python從零到獨立建設網站,基礎知識,你學過range()函式嗎?

注意:給定的終止數值並不在要生成的序列裡,range(10)會生成10個值,並且是以合法的索引生成一個長度為10的序列。range也可以以另一個數字開頭,或者以指定的幅度增加(甚至是負數,有時這也叫做’步進‘)。

python從零到獨立建設網站,基礎知識,你學過range()函式嗎?

python從零到獨立建設網站,基礎知識,你學過range()函式嗎?

range()和len()組合

要以序列的索引來迭代,您可以將range()和len()組合,

我們來舉一個小例子:

list = [‘apple’ ,‘pear’,‘banana’,‘orange’]

for i in range(len(list)):

print(i,list[i])

輸出如下

0 apple

1 pear

2 banana

3 orange

python從零到獨立建設網站,基礎知識,你學過range()函式嗎?

然而在大多這類情況下,使用enumerate()函式比較方便

python從零到獨立建設網站,基礎知識,你學過range()函式嗎?

enumerate()函式

enumerate(iterable,start=0) 返回一個列舉物件,iterable必須是一個序列,或iterator,或其它支援迭代的物件。enumerate()返回的迭代器的__next__()方法返回一個元組,裡邊包含一個計數值(從start開始,預設為0)和透過迭代iterable獲得的值。我們舉個例子:

seasons = [‘spring’,‘summer’,‘fall’,‘winter’]

for i in enumerate(seasons):

print(i)

輸出如下:

(0, ‘spring’)

(1, ‘summer’)

(2, ‘fall’)

(3, ‘winter’)

python從零到獨立建設網站,基礎知識,你學過range()函式嗎?

range()返回資料

range()所返回的物件在許多方面表現的像一個列表,但實際上卻並不是。此物件會在你迭代它時基於所希望的序列返回連續的項,但它沒有真正的生成列表,這樣就能節省空間。我們稱這樣物件為iterable,也就是說,適合作為這樣的目標物件,函式和結構期望中從獲取連續的項直到所提供的項全部耗盡。我們已經看到for語句就是這樣一種結構,而接受可迭代物件的函式的一個例子是sum()函式。

sum(range(7))

輸出如下

21

python從零到獨立建設網站,基礎知識,你學過range()函式嗎?

range()生成列表

利用range()函式生成數字列表,舉例如下:

list1 = list(range(10))

print(list1)

輸出如下:

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

python從零到獨立建設網站,基礎知識,你學過range()函式嗎?

python從零到獨立建設網站,基礎知識,你學過range()函式嗎?