python中超級有用的zip 函式

2021-09-30 00:09:06 字數 1675 閱讀 3077

zip函式的原型為:zip([iterable, …])

引數iterable為可迭代的物件,並且可以有多個引數。

該函式返回乙個以元組為元素的列表,其中第 i 個元組包含每個引數序列的第 i 個元素。

返回的列表長度被截斷為最短的引數序列的長度。

只有乙個序列引數時,它返回乙個1元組的列表。

沒有引數時,它返回乙個空的列表。

import numpy as npa=[

1,2,

3,4,

5]b=(

1,2,

3,4,

5)c=np.arange(5)

d="zhang"

zz=zip

(a,b,c,d)

print

(zz)

#輸出:

#[(1, 1, 0, 'z'), (2, 2, 1, 'h'), (3, 3, 2, 'a'), (4, 4, 3, 'n'), (5, 5, 4, 'g')]

當多個引數長度不同的時候:

import numpy as npa=[

1,2,

3]b=[

1,2,

3,4]

c=[1,

2,3,

4,5]

zz=zip

(a,b,c)

print

(zz)

#輸出:[(1, 1, 1), (2, 2, 2), (3, 3, 3)]

zip() 和 * 操作符一起操作可以用來 unzip 乙個列表,看下面的**:

import numpy as npa=[

1,2,

3]b=[

4,5,

6]c=[

7,8,

9]zz=zip

(a,b,c)

print

(zz)

x,y,z=

zip(

*zz)

print

(x)print

(y)print

(z)#輸出:

#[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

#(1, 2, 3)

#(4, 5, 6)

#(7, 8, 9)

注意這裡輸出的每個都是元組,而不一定是原來的型別,但是值不會發生變化,除非原來的引數列表長度不一樣

import numpy as npa=[

1,2,

3]b=[

4,5,

6,7]

c=[8,

9,10,

11,12]

zz=zip

(a,b,c)

print

(zz)

x,y,z=

zip(

*zz)

print

(x)print

(y)print

(z)#unzip後的列表b和c的值都少了

#輸出:

#[(1, 4, 8), (2, 5, 9), (3, 6, 10)]

#(1, 2, 3)

#(4, 5, 6)

#(8, 9, 10)

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...