python中zip 函式遍歷多個列表方法

2022-10-04 13:09:19 字數 1476 閱讀 2768

在對列表的元素進行找尋時,會頻繁的說到遍歷的理念。對於複雜的遍歷要求,如多個列表中查詢就顯然不適合用for迴圈。本篇所要帶來的是zip() 函式的方法,能夠對多個迭代器進行遍歷。下面我們就py中zip的說明、語法、使用注意點進行講解,然後帶來遍歷多個列表的例項。

zip() 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。(注:在python3中返回的是zip物件)

zip(iterable, ...)

# 其中 iterable,... 表示多個列表、元組、字典、集合、字串,甚至還可以為 range() 區間。

(1)zip 可以平行地遍歷多個迭代器,如果可迭代物件的長度不相同將按短的序列為準

(2)python3中zip相當於生成器,遍歷過程中產生元組,python2會把元組生成好,一次性返回整份列表

使用zip()函式一次處理兩個或多個列表中的元素:

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()函程式設計客棧數例項擴充套件:

兩個或者多個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後的資料

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)

如www.cppcns.com有兩個list,乙個是一層,乙個是巢狀,要組成乙個dict

#將zip物件轉換成字典看看

a=[1,2,3]

d=[['a','b','c'],['aa','bb','cc'],['aaa','bbb','ccc']]

dict(zip(a,d)) #

#如果乙個是key值,乙個內層list就是一行value程式設計客棧

[dict(zip(a,value)) for value in d] #[,

, ]#或者是

l=for value in d:

dict={}

for i in range(len(value)):

dic程式設計客棧t[a[i]]=value[i]

l.append(dict)

Python中的Zip 函式

zip 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 號操作符,可以將元組解壓為列表。zip 語法 zip iterable,引數說明 返回元組列表。以下例項展示了 zip 的使...

Python中的zip函式

定義 zip iterable,zip 是python的乙個內建函式,它接受一系列可迭代的物件作為引數,將物件中對應的元素打包成乙個個tuple 元組 然後返回由這些tuples組成的list 列表 若傳入引數的長度不等,則返回list的長度和引數中長度最短的物件相同。利用 號操作符,可以將list...

python中的zip函式

先貼上原始碼 zip iter1 iter2 zipobject return a zip object whose next method returns a tuple where the i th element comes from the i th iterable argument.th...