python中zip()函數(shù)遍歷多個(gè)列表方法
在對(duì)列表的元素進(jìn)行找尋時(shí),會(huì)頻繁的說(shuō)到遍歷的理念。對(duì)于復(fù)雜的遍歷要求,如多個(gè)列表中查找就顯然不適合用for循環(huán)。本篇所要帶來(lái)的是zip() 函數(shù)的方法,能夠?qū)Χ鄠€(gè)迭代器進(jìn)行遍歷。下面我們就python中zip的說(shuō)明、語(yǔ)法、使用注意點(diǎn)進(jìn)行講解,然后帶來(lái)遍歷多個(gè)列表的實(shí)例。
1、說(shuō)明zip() 函數(shù)用于將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表。(注:在python3中返回的是zip對(duì)象)
2、語(yǔ)法zip(iterable, ...)# 其中 iterable,... 表示多個(gè)列表、元組、字典、集合、字符串,甚至還可以為 range() 區(qū)間。3、注意
(1)zip 可以平行地遍歷多個(gè)迭代器,如果可迭代對(duì)象的長(zhǎng)度不相同將按短的序列為準(zhǔn)
(2)python3中zip相當(dāng)于生成器,遍歷過(guò)程中產(chǎn)生元組,python2會(huì)把元組生成好,一次性返回整份列表
4、實(shí)例使用zip()函數(shù)一次處理兩個(gè)或多個(gè)列表中的元素:
alist = [’a1’, ’a2’, ’a3’]blist = [’1’, ’2’, ’3’]for a, b in zip(alist, blist): print a, b# a1 1# a2 2# a3 3
python zip()函數(shù)實(shí)例擴(kuò)展:
兩個(gè)或者多個(gè)list
a=[1,2,3]b=[4,5,6]c=[7,8,9,10] #兩個(gè)list去zip()zip(a,b)#三個(gè)list去zip(),返回的對(duì)象的長(zhǎng)度和最小的迭代器一致zip(a,b,c)#用list()查看zip后的數(shù)據(jù)list(zip(a,b)) #[(1, 4), (2, 5), (3, 6)]list(zip(a,b,c)) #[(1, 4, 7), (2, 5, 8), (3, 6, 9)]#使用zip(*zip())解壓a1,b1=zip(*zip(a,b))#兩個(gè)list迭代輸出for i,j in zip(a,b): print(i,j)
如有兩個(gè)list,一個(gè)是一層,一個(gè)是嵌套,要組成一個(gè)dict
#將zip對(duì)象轉(zhuǎn)換成字典看看a=[1,2,3]d=[[’a’,’b’,’c’],[’aa’,’bb’,’cc’],[’aaa’,’bbb’,’ccc’]]dict(zip(a,d)) #{1: [’a’, ’b’, ’c’], 2: [’aa’, ’bb’, ’cc’], 3: [’aaa’, ’bbb’, ’ccc’]}#如果一個(gè)是key值,一個(gè)內(nèi)層list就是一行value[dict(zip(a,value)) for value in d] #[{1: ’a’, 2: ’b’, 3: ’c’}, {1: ’aa’, 2: ’bb’, 3: ’cc’}, {1: ’aaa’, 2: ’bbb’, 3: ’ccc’}]#或者是 l=[]for value in d: dict={} for i in range(len(value)): dict[a[i]]=value[i] l.append(dict)
到此這篇關(guān)于python中zip()函數(shù)遍歷多個(gè)列表方法的文章就介紹到這了,更多相關(guān)zip()函數(shù)如何在python中遍歷多個(gè)列表內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. PHP循環(huán)與分支知識(shí)點(diǎn)梳理2. ASP基礎(chǔ)入門第三篇(ASP腳本基礎(chǔ))3. 解析原生JS getComputedStyle4. 無(wú)線標(biāo)記語(yǔ)言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁(yè)5. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)6. ASP實(shí)現(xiàn)加法驗(yàn)證碼7. 讀大數(shù)據(jù)量的XML文件的讀取問(wèn)題8. css代碼優(yōu)化的12個(gè)技巧9. 利用CSS3新特性創(chuàng)建透明邊框三角10. 前端從瀏覽器的渲染到性能優(yōu)化
