【要點(diǎn)搶先看】
今天我們來講講三種循環(huán)迭代的常用技巧,,range,、zip和enumerate 內(nèi)置函數(shù)range:用來返回一系列連續(xù)增加的整數(shù) 這個(gè)函數(shù)產(chǎn)生的連續(xù)增加的整數(shù)序列,可以作為for循環(huán)迭代的索引 for x in range(5): range也可以用在任何需要整數(shù)列表的地方,。直接打印range函數(shù)的返回值是不能直接返回一個(gè)整數(shù)列表的,,如果將其作為一個(gè)參數(shù)傳給list函數(shù),則可以一次性顯示全部結(jié)果,。 print(range(5)) - print(list(range(-5,5))) 內(nèi)置函數(shù)range在for循環(huán)中是最常用的,,它提供了一種簡單的方法,重復(fù)特定次數(shù)的動作,。 當(dāng)然還可以做一些定制工作,,比如在遍歷的過程中跳過一些元素。例如每隔一個(gè)元素對字符串進(jìn)行遍歷: S = 'abcdefghijklmn' 當(dāng)然,,這只是一個(gè)示例,,我們之前提到過的分片表達(dá)式才是實(shí)現(xiàn)該功能的最簡單的方法,這個(gè)我們之前是介紹過的: S = 'abcdefghijklmn' 和文件迭代一樣,,這里range函數(shù)的優(yōu)點(diǎn)也是明顯的,,它沒有復(fù)制字符串,不會在python中再創(chuàng)建一個(gè)字符串列表,,這對于很大的字符串來說,,會節(jié)約不少空間。 zip:用來并行迭代多個(gè)序列 內(nèi)置zip函數(shù)允許我們使用for循環(huán)來并行迭代多個(gè)序列,。zip使用多個(gè)序列作為參數(shù),,然后返回元組的列表,將這些序列中的并排元素一一配對,。 L1 = [1,2,3,4,5] 和range一樣,,zip在遍歷時(shí)也是依次按需產(chǎn)生結(jié)果,而不是一次性顯示所有結(jié)果 L1 = [1,2,3,4,5] 同樣的,,如果想一次性顯示所有結(jié)果,,則必須將其包含在一個(gè)list調(diào)用中,,以便一次性顯示所有結(jié)果 L1 = [1,2,3,4,5] 最后只說明一點(diǎn),當(dāng)zip的多個(gè)參數(shù)長度不同時(shí),,zip會以最短序列的長度為準(zhǔn)來截?cái)嗨玫降脑M L1 = [1,2,3,4,5] 回顧一下,,之前我們談到過,當(dāng)字典的鍵和值必須在運(yùn)行時(shí)計(jì)算產(chǎn)生時(shí),,zip函數(shù)可以用于產(chǎn)生這樣的字典 keys = ['A', 'B', 'C'] enumerate:用來同時(shí)產(chǎn)生偏移和元素 有時(shí)我們在遍歷的時(shí)候,,既需要偏移值,又需要對應(yīng)元素,,那么內(nèi)置函數(shù)enumerate就可以實(shí)現(xiàn)這個(gè)功能,。 他在for循環(huán)的條件下每輪迭代返回一個(gè)包含偏移值和偏移元素的元組:(index,value) S = 'spam' 同樣,他也是按需產(chǎn)生,,而非一次性產(chǎn)生所有元素的列表 S = 'spam' 【妹子說】這種高級技巧課程的內(nèi)容還是挺多的,,需要多多練習(xí)才能好好掌握~ |
|