Python zip() 函式



Python 的 zip() 函式 是一個 內建函式,它允許將來自兩個或多個可迭代物件(例如列表、元組等)的元素組合起來。它建立一個新的可迭代的元組,其中每個元組包含來自原始可迭代物件中位於相同索引的項。

如果我們傳入長度不同的可迭代物件,則專案數量最少的可迭代物件將決定新迭代器的長度。

語法

以下是 Python zip() 函式的語法:

zip(iterator...)

引數

Python zip() 函式接受一個引數:

  • iterator - 它表示一個物件,例如 列表元組。此引數可以接受任意數量的迭代器物件。

返回值

Python zip() 函式返回一個迭代器物件。

zip() 函式示例

練習以下示例以瞭解如何在 Python 中使用 zip() 函式

示例:zip() 函式的使用

zip() 函式最常見的用途是將來自兩個或多個可迭代物件的元素組合成元組列表。在下面的示例中,我們正在組合兩個列表,分別包含水果及其數量的詳細資訊。

fruits = ["grapes", "orange", "kiwi", "apple", "mango"]
quantity = [25, 30, 35, 20, 15]
newList = list(zip(fruits, quantity))
print("The new list containing both lists:")
print(newList)

執行上述程式後,將產生以下結果:

The new list containing both lists:
[('grapes', 25), ('orange', 30), ('kiwi', 35), ('apple', 20), ('mango', 15)]

示例:使用 zip() 函式建立字典

除了元組之外,zip() 函式還可以用來建立 字典,其中鍵和值由兩個單獨的列表提供。在下面的程式碼中,我們對此進行了說明。

keyOfDict = ["empId", "designation", "department"]
valOfDict = [121, "developer", "Technology"]
empDetails = dict(zip(keyOfDict, valOfDict))
print("The new dictionary containing both lists:")
print(empDetails)

以下是上述程式碼的輸出:

The new dictionary containing both lists:
{'empId': 121, 'designation': 'developer', 'department': 'Technology'}

示例:使用 zip() 函式解壓可迭代物件

我們還可以使用 zip() 函式解壓值。如果我們將星號 "*" 與可迭代物件一起傳遞給 zip() 函式,它將分離該可迭代物件的元素。在下面的示例中,我們正在解壓名為 "empDetails" 的列表。

empDetails = [("Ansh", 121), ("Shrey", 131), ("Raman", 141)]
names, ids = zip(*empDetails)
print("Displaying the details:")
for emp, empId in zip(names, ids):
    print(f"Name: {emp}, ID: {empId}")

上述程式碼的輸出如下:

Displaying the details:
Name: Ansh, ID: 121
Name: Shrey, ID: 131
Name: Raman, ID: 141

示例:使用 zip() 函式並行迭代多個列表

當我們有多個長度相同的列表時,zip() 函式允許我們像下面程式碼中所示的那樣並行迭代它們。

empDetails = [("Ansh", 121), ("Shrey", 131), ("Raman", 141)]
names, ids = zip(*empDetails)
print("Displaying the details:")
for emp, empId in zip(names, ids):
    print(f"{emp} has ID no: {empId}")

以下是上述程式碼的輸出:

Displaying the details:
Ansh has ID no: 121
Shrey has ID no: 131
Raman has ID no: 141
python_built_in_functions.htm
廣告