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