在對列表的元素進行找尋時,會頻繁的說到遍歷的理念。對于復雜的遍歷要求,如多個列表中查找就顯然不適合用for循環(huán)。本篇所要帶來的是zip() 函數(shù)的方法,能夠?qū)Χ鄠€迭代器進行遍歷。下面我們就python中zip的說明、語法、使用注意點進行講解,然后帶來遍歷多個列表的實例。
1、說明
zip() 函數(shù)用于將可迭代的對象作為參數(shù),將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的列表。(注:在python3中返回的是zip對象)
2、語法
zip(iterable, ...)
# 其中 iterable,... 表示多個列表、元組、字典、集合、字符串,甚至還可以為 range() 區(qū)間。
3、注意
(1)zip 可以平行地遍歷多個迭代器,如果可迭代對象的長度不相同將按短的序列為準
(2)python3中zip相當于生成器,遍歷過程中產(chǎn)生元組,python2會把元組生成好,一次性返回整份列表
4、實例
使用zip()函數(shù)一次處理兩個或多個列表中的元素:
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ù)實例擴展:
兩個或者多個list
a=[1,2,3]
b=[4,5,6]
c=[7,8,9,10]
#兩個list去zip()
zip(a,b)
#三個list去zip(),返回的對象的長度和最小的迭代器一致
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))
#兩個list迭代輸出
for i,j in zip(a,b):
print(i,j)
如有兩個list,一個是一層,一個是嵌套,要組成一個dict
#將zip對象轉(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']}
#如果一個是key值,一個內(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ù)遍歷多個列表方法的文章就介紹到這了,更多相關(guān)zip()函數(shù)如何在python中遍歷多個列表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python列表排序 list.sort方法和內(nèi)置函數(shù)sorted用法
- python函數(shù)超時自動退出的實操方法
- python中l(wèi)ower函數(shù)實現(xiàn)方法及用法講解
- python中函數(shù)返回多個結(jié)果的實例方法
- Python排序函數(shù)的使用方法詳解
- 基于Python 函數(shù)和方法的區(qū)別說明