Python小模塊之Zip用法

刷leetcode題你總能看到各式各樣的小方法,各式各樣的python魔法方法。今天就來聊聊這個zip函數,這個是python的一個內置函數。

zip()接受的參數是一個可迭代的列表,返回的是一個個元組。zip顧名思義就意味着壓縮,那麼解壓就是zip(*)。使用下面兩個小栗子進行說明。

1、zip()


In [1]: a=[1,2,3]

In [2]: b=[4,5,6]

In [3]: for item in zip(a,b):
   ...:     print(item)
   ...:
(1, 4)
(2, 5)
(3, 6)



In [7]: b=[4,5,6,7]

In [8]: a = [1,2,3]

In [9]: for item in zip(a,b):
   ...:     print(item)
   ...:
   ...:
   ...:
(1, 4)
(2, 5)
(3, 6)

將列表打包返回一個元組爲單位的列表。 

2、zip(*)


In [4]: s = ["flower","flow","flight"]

In [5]: for item in zip(s):
   ...:     print(item)
   ...:
('flower',)
('flow',)
('flight',)

In [6]: for item in zip(*s):
   ...:     print(item)
   ...:
   ...:
('f', 'f', 'f')
('l', 'l', 'l')
('o', 'o', 'i')
('w', 'w', 'g')

zip(*)會把列表變成一個二維矩陣。

3、結論

通過實驗會發現一個問題,zip()函數只取最短長度的。不管是壓縮還是解壓不顧及最長的長度,只看最短長度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章