Skip to content

[Python] zip() 函式的使用方法

Last Updated on 2021-05-12 by Clay

在 Python 當中,zip() 這個函式能夠將不同的可迭代對象在同樣 index 的值組合成 tuple 型態,在需要不同 List 互相組合的時候尤其好用。

關於 zip() 函式,你也可以參考: https://pythonprogramming.net/zip-intermediate-python-tutorial/

以下就來看幾段簡單的 Sample Code。


使用方法

就如同上述, zip() 函式可以將不同的 List 組合在一起,返回 tuple 的資料型態。一開始, zip() 只是返回 List 的資料型態,我們可能得使用 list() 來轉換 zip() 的返回結果。

i = [1, 2, 3]
j = ['a', 'b', 'c']
print(zip(i, j))



Output:

<zip object at 0x00000181F7BF8148>

直接使用 zip() 的話我們返回的是一個可迭代對象,無法看到結果。

print(list(zip(i, j)))



Output:

[(1, 'a'), (2, 'b'), (3, 'c')]

使用 list() 轉換過,我們就可以看到返回的 tuple 資料了。我們可以看到,我們原先設定好的 i, j 兩個變數,兩邊相同 index 的值被組合在一起。

k = [12.0, 13.0, 14.0, 15.0]
print(list(zip(i, j, k)))



Output:

[(1, 'a', 12.0), (2, 'b', 13.0), (3, 'c', 14.0)]

3 個 List 資料型態的情況也適用,會將 3 個 index 相同的值組合在一起。不過我們可以看到 k 變數的最後一項 15.0 沒有值可以匹配,所以並不會出現在返回的結果裡頭。

zip() 返回的組合結果只會以輸入當中長度最小的可迭代對象為基準,超過這個長度的值都不會出現在返回結果當中。

另外, zip() 輸入的順序會影響組合的結果。

print(list(zip(k, i, j)))



Output:

[(12.0, 1, 'a'), (13.0, 2, 'b'), (14.0, 3, 'c')]

那麼,以上就是關於 zip() 函式在 Python 當中使用方法的筆記。

Tags:

Leave a Reply