python從零到獨(dú)立建設(shè)網(wǎng)站,基礎(chǔ)知識(shí),你學(xué)過range()函數(shù)嗎?
時(shí)間:2023-08-04 04:39:01 | 來源:網(wǎng)站運(yùn)營
時(shí)間:2023-08-04 04:39:01 來源:網(wǎng)站運(yùn)營
python從零到獨(dú)立建設(shè)網(wǎng)站,基礎(chǔ)知識(shí),你學(xué)過range()函數(shù)嗎?:在python中,如果你確實(shí)需要遍歷一個(gè)數(shù)字序列,內(nèi)置函數(shù)range()會(huì)派上用場(chǎng)。它生成算術(shù)級(jí)數(shù):
for i in range(10):
print(i)
輸出如下:
注意:給定的終止數(shù)值并不在要生成的序列里,range(10)會(huì)生成10個(gè)值,并且是以合法的索引生成一個(gè)長度為10的序列。range也可以以另一個(gè)數(shù)字開頭,或者以指定的幅度增加(甚至是負(fù)數(shù),有時(shí)這也叫做’步進(jìn)‘)。
range()和len()組合
要以序列的索引來迭代,您可以將range()和len()組合,
我們來舉一個(gè)小例子:
list = ['apple' ,'pear','banana','orange']
for i in range(len(list)):
print(i,list[i])
輸出如下
0 apple
1 pear
2 banana
3 orange
然而在大多這類情況下,使用enumerate()函數(shù)比較方便
enumerate()函數(shù)
enumerate(iterable,start=0) 返回一個(gè)枚舉對(duì)象,iterable必須是一個(gè)序列,或iterator,或其它支持迭代的對(duì)象。enumerate()返回的迭代器的__next__()方法返回一個(gè)元組,里邊包含一個(gè)計(jì)數(shù)值(從start開始,默認(rèn)為0)和通過迭代iterable獲得的值。我們舉個(gè)例子:
seasons = ['spring','summer','fall','winter']
for i in enumerate(seasons):
print(i)
輸出如下:
(0, 'spring')
(1, 'summer')
(2, 'fall')
(3, 'winter')
range()返回?cái)?shù)據(jù)
range()所返回的對(duì)象在許多方面表現(xiàn)的像一個(gè)列表,但實(shí)際上卻并不是。此對(duì)象會(huì)在你迭代它時(shí)基于所希望的序列返回連續(xù)的項(xiàng),但它沒有真正的生成列表,這樣就能節(jié)省空間。我們稱這樣對(duì)象為iterable,也就是說,適合作為這樣的目標(biāo)對(duì)象,函數(shù)和結(jié)構(gòu)期望中從獲取連續(xù)的項(xiàng)直到所提供的項(xiàng)全部耗盡。我們已經(jīng)看到for語句就是這樣一種結(jié)構(gòu),而接受可迭代對(duì)象的函數(shù)的一個(gè)例子是sum()函數(shù)。
sum(range(7))
輸出如下
21
range()生成列表
利用range()函數(shù)生成數(shù)字列表,舉例如下:
list1 = list(range(10))
print(list1)
輸出如下:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
關(guān)鍵詞:知識(shí),函數(shù),基礎(chǔ),獨(dú)立,建設(shè)