zip函式我個人是這麼理解的,假如有多個引數,每個引數都是乙個列表,列表可以不等長,那麼我把每個列表看成一根蔥,我現在要切蔥花,把這一根根的蔥從上到下疊在一起,頭部對齊,用菜刀一刀一刀從前往後切。切到最短的一根蔥沒了為止。其它沒切完的蔥就不要了。最終得到每一刀從上到下的蔥花,這每一刀的蔥花本身是乙個迭代器,需要迴圈讀取。
a=[1
,2,3
,4,5
]b=[1
,2,3
,4]c=
[1,2
,3,4
]result=
zip(a,b,c)
print
(result)
cut=
1for i in result:
print
('第{}刀:'
.format
(cut)
,i) cut+=
1
#結果可知沒有第5刀,只有4刀
<
zipobject at 0x0000019516c21988
>
第1刀: (1,
1,1)
第2刀: (2,
2,2)
第3刀: (3,
3,3)
第4刀: (4,
4,4)
需要注意的一點是,當zip傳參時,想用1個引數代替多個多個引數需要使用*parm格式:
a=[1
,2,3
,4,5
]b=[1
,2,3
,4]c=
[1,2
,3,4
]# result=zip(a,b,c)
d=[a,b,c]
result=
zip(
*d)#或者result=zip(*(a,b,c))
print
(result)
cut=
1for i in result:
print
('第{}刀:'
.format
(cut)
,i) cut+=
1#結果是一樣的。
額外提一點,tensorflow裡的dataset.zip((x,y))有點類似zip(*(x,y))的效果 Python zip 函式的用法
python函式式程式設計之zip zip zip 函式接受0個或多個序列作為引數,返回乙個tuple列表。zip 函式具體的工作機制是,將每個列表中同一位置的元素取出來組成乙個元組,存放到乙個列表中,然後返回這個列表。舉例說明 x 1,2,3 y a b c z 4,5,6 zip xyz zip...
Python zip函式的使用
zip 函式 zip函式的原型為 zip iterable,zip 是python的乙個內建函式,它接受一系列可迭代的物件作為引數,將物件中對應的元素打包成乙個個tuple 元組 然後返回由這些tuples組成的list 列表 若傳入引數的長度不等,則返回list的長度和引數中長度最短的物件相同。也...
python zip 函式的使用
解釋 字尾為zip的檔案肯定都見過吧?zip是打包壓縮好的乙個檔案,所以,zip 函式也簡單的理解為打包壓縮函式,將不同個數 相同型別的字段結合在一起。官方定義為 zip 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。如果各個迭代器的元素個數不一致...