python中zip 函式的用法

2021-09-12 10:12:24 字數 1798 閱讀 7143

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

引數iterable為可迭代的物件,並且可以有多個引數。該函式返回乙個以元組為元素的列表,其中第 i 個元組包含每個引數序列的第 i 個元素。返回的列表長度被截斷為最短的引數序列的長度。只有乙個序列引數時,它返回乙個1元組的列表。沒有引數時,它返回乙個空的列表。

import numpy as np

a=[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 np

zz=zip()

print(zz)

輸出:

當只有乙個引數的時候

import numpy as np

a=[1,2,3]

zz=zip(a)

print

(zz)

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

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

import numpy as np

a=[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 np

a=[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 np

a=[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)輸出:

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

(1, 2, 3)

(4, 5, 6)

(8, 9, 10)

unzip後的列表b和c的值都少了。

posted @

2017-06-18 10:45

neu_張康 閱讀(

...)

編輯收藏

python中zip 函式的用法

zip函式的原型為 zip iterable,引數iterable為可迭代的物件,並且可以有多個引數。該函式返回乙個以元組為元素的列表,其中第 i 個元組包含每個引數序列的第 i 個元素。返回的列表長度被截斷為最短的引數序列的長度。只有乙個序列引數時,它返回乙個1元組的列表。沒有引數時,它返回乙個空...

Python中zip 函式的用法

在自動化測試過程中,使用使用到python內建函式zip 記錄之 zip 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的物件,這樣做的好處是節約了不少的記憶體。我們可以使用 list 轉換來輸出列表。如果各個迭代器的元素個數不一致,則返回列表長度與最短的...

python中zip 函式的用法

引數iterable為可迭代的物件,並且可以有多個引數。該函式返回乙個以元組為元素的列表,其中第 i 個元組包含每個引數序列的第 i 個元素。返回的列表長度被截斷為最短的引數序列的長度。只有乙個序列引數時,它返回乙個1元組的列表。沒有引數時,它返回乙個空的列表。當沒有引數的時候 import num...