真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python中與迭代相關(guān)的函數(shù)有哪些-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)建站主營西塞山網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App定制開發(fā),西塞山h5微信小程序搭建,西塞山網(wǎng)站營銷推廣歡迎西塞山等地區(qū)企業(yè)咨詢

Python中與迭代相關(guān)的函數(shù)有哪些?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

下面要介紹的enumerate、range、zip、reversed、sorted屬于Python內(nèi)置的函數(shù)或者類別,返回的對象都可通過迭代方法訪問。

一、enumerate函數(shù)

1.語法:enumerate(iterable, start=0)

1)該函數(shù)Python 2.3. 以上版本可用,2.6 添加 start 參數(shù),返回一個枚舉對象,該枚舉對象是一個迭代器,該函數(shù)將iterable對象中的元素轉(zhuǎn)換成枚舉值,并每個元素分配一個從start開始的索引值;

2)參數(shù)iterable,表示一個可迭代對象如序列;

3)參數(shù)start表示索引值的起始值,默認(rèn)為0;

4)enumerate() 返回的枚舉對象通過next函數(shù)或 __next__ 方法返回一個元組,里面包含索引值(從 start 開始,默認(rèn)為 0)和通過迭代 iterable 獲得的對應(yīng)元素值。

2.對于一個可迭代的(iterable)/可遍歷的對象,enumerate可以將其組成一個索引序列,利用它可以同時獲得索引和值,這種方式一般用在 for 循環(huán)當(dāng)中;

3.注意其返回值是一個迭代器,遍歷訪問后元素就清空了

4.舉例:

1)s=enumerate('abc',100)?
l =list(s) ?#l的值為:[(100, 'a'), (101, 'b'), (102, 'c')]
2)for index, string in enumerate('ABC',10):print(index,':',string,', ',end='')

輸出:

10 : A , 11 : B , 12 : C ,

二、range函數(shù)

1.語法:

range(start, stop[, step])

1)返回值是一個不可變的數(shù)字序列可迭代對象,類型為range,該數(shù)字序列通常用于在 for 循環(huán)中循環(huán)指定的次數(shù);

2)參數(shù)start為可選參數(shù),表示數(shù)字序列的起始值,可以省略,默認(rèn)為0;

3)參數(shù)stop為必選參數(shù),表示整數(shù)序列的終止值,產(chǎn)生的序列的大值必須小于該值,當(dāng)range只帶一個參數(shù)調(diào)用時,該參數(shù)就是stop的值;

4)參數(shù)step表示序列兩個元素間的步長,也就是序列中相鄰兩個元素的差值,可選參數(shù),默認(rèn)為1;每個元素的值r[i]= ?start + step*i ,當(dāng)step為正整數(shù)時產(chǎn)生的序列是升序排序, r[i] < stop,當(dāng)step為負(fù)整數(shù)時產(chǎn)生的序列是降序排序, r[i] >stop。

2.說明

1)如果第一個元素 不符合stop值對序列的限制條件,則該 range 對象為空;

2)range 對象支持索引訪問,也支持負(fù)索引,支持負(fù)索引時會將其解讀為從正索引所確定的序列的末尾開始索引,這個與序列訪問方法一樣;

3)range 對象支持切片訪問,但與索引訪問方式不一樣,切片訪問返回的還是一個range對象,假設(shè):切片的開始位置索引為s,結(jié)束位置為e,當(dāng)step為正數(shù)時則返回的range對象為:

range(start+s*step,max(stop,start+e*step),step)

如果step為負(fù)數(shù),則返回的range對象為:

range(start+s*step,min(stop,start+e*step),step)

4)range 類型相比常規(guī) list 或 tuple 的優(yōu)勢在于一個 range 對象總是占用固定數(shù)量的(較?。﹥?nèi)存,不論其所表示的范圍有多大(因為它只保存了 start, stop 和 step 值,并會根據(jù)需要計算具體單項或子范圍的值),某種程度上與生成器表達(dá)式類似,但它不屬于生成器,也不是迭代器。

5)使用 == 和 != 檢測 range 對象是否相等是將其作為序列來比較。 也就是說,如果兩個 range 對象表示相同的值序列就認(rèn)為它們是相等的。 (請注意比較結(jié)果相等的兩個 range 對象可能會具有不同的 start, stop 和 step 屬性,例如 range(0) == range(2, 1, 3) 而 range(0, 3, 2) == range(0, 4, 2)。)

6)注意:在Python3以前有個xrange函數(shù),Python3以后取消了,其功能合并到了range

三、zip函數(shù)

1.語法:zip(*iterables)

1)參數(shù)說明:iterables表示多個可迭代對象,可以沒有;

2)返回值為一個zip對象,這個對象也是一個迭代器,該迭代器中的元素是元組,元組的元素i按參數(shù)順序來自于這多個可迭代對象的第i個元素。當(dāng)所輸入可迭代參數(shù)對象中最短的一個被耗盡時,迭代器將停止迭代。 當(dāng)只有一個可迭代對象參數(shù)時,它將返回一個單元組的迭代器。 不帶參數(shù)時,它將返回一個空迭代器。

2.說明:

1)返回對象可以轉(zhuǎn)換為列表、字典等類型,但轉(zhuǎn)換為字典類型時,zip必須且只能有2個迭代對象作為參數(shù);

2)zip對象是個迭代器,因此遍歷一次后元素會清空;

3)要查看其內(nèi)容,可使用list或dict將其轉(zhuǎn)換為列表

3.舉例:按順序執(zhí)行下列腳本

numbers=[1,2,3,4,5,6]
ABC=['A','B','C']
abc='abc'
z=zip(numbers,ABC,abc)

list(z) #輸出為:

[(1, 'A', 'a'), (2, 'B', 'b'), (3, 'C', 'c')]

z=zip(numbers,ABC,abc) #思考一下,為什么要再次zip?

dict(z) #執(zhí)行報錯,因為使用了3個迭代對象不能創(chuàng)建字典數(shù)據(jù)

list(z) #輸出為:

[(2, 'B', 'b'), (3, 'C', 'c')]

思考一下為什么比上面少了一個?

z=zip(numbers,ABC,abc)?

for n,A,a in z:print(n,A,a,end='; ') #輸出為:

1 A a; 2 B b; 3 C c;

四、reversed函數(shù)

1.語法:reversed(seq)

2.說明:

1)返回一個與參數(shù)對象順序倒轉(zhuǎn)的 iterator對象,原參數(shù)對象保持不變,返回對象類型為reversed,是一個可迭代對象,不能直接訪問,可以轉(zhuǎn)換為其他對象或通過for循環(huán)方法訪問

2)seq 為任何序列或可迭代的對象,必須是一個具有 __reversed__() 方法的對象或者是支持序列協(xié)議的對象(支持__len__() 方法和 從0開始的整數(shù)類型參數(shù)的__getitem__() 方法)

3.舉例:

s="AbcD"
s2=reversed(s)

type(s2)#輸出:

list(s2) #輸出:

['D', 'c', 'b', 'A']

s保持不變

s2 #輸出:

五、sorted函數(shù)

1.語法:

sorted(iterable, *, key=None, reverse=False)

2.說明:

1)根據(jù) iterable 中的項返回一個新的已排序列表,返回值為已排序的列表,原參數(shù)iterable 中的數(shù)據(jù)不會發(fā)生變化;

2)key 指定帶有單個參數(shù)的函數(shù),用于從 iterable 的每個元素中提取用于比較的鍵 (例如 key=str.lower)。 默認(rèn)值為 None (直接比較元素)

3)reverse 為一個布爾值。 如果設(shè)為 True,則每個列表元素將按反向順序比較進(jìn)行排序

3.舉例

s="AbcD"

s1=sorted(s) #s1的數(shù)據(jù)為:

['A', 'D', 'b', 'c']

s2=sorted(s,key=str.lower) #s2的數(shù)據(jù)為:

['A', 'b', 'c', 'D']

關(guān)于Python中與迭代相關(guān)的函數(shù)有哪些問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道了解更多相關(guān)知識。


網(wǎng)頁題目:Python中與迭代相關(guān)的函數(shù)有哪些-創(chuàng)新互聯(lián)
分享地址:http://weahome.cn/article/cohjsj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部