1. 程式人生 > >Zip 和 Enumerate

Zip 和 Enumerate

zip 和 enumerate 是實用的內建函式,可以在處理迴圈時用到。

Zip

zip 返回一個將多個可迭代物件組合成一個元組序列的迭代器。每個元組都包含所有可迭代物件中該位置的元素。例如,

list(zip(['a', 'b', 'c'], [1, 2, 3])) 將輸出 [('a', 1), ('b', 2), ('c', 3)].

正如 range() 一樣,我們需要將其轉換為列表或使用迴圈進行遍歷以檢視其中的元素。

你可以如下所示地用 for 迴圈拆封每個元組。

letters = ['a', 'b', 'c']
nums = [1, 2, 3]

for letter, num in zip(letters, nums):
    print("{}: {}".format(letter, num))

除了可以將兩個列表組合到一起之外,還可以使用星號拆封列表。

some_list = [('a', 1), ('b', 2), ('c', 3)]
letters, nums = zip(*some_list)

這樣可以建立正如之前看到的相同 letters 和 nums 列表。

Enumerate

enumerate 是一個會返回元組迭代器的內建函式,這些元組包含列表的索引和值。當你需要在迴圈中獲取可迭代物件的每個元素及其索引時,將經常用到該函式。

letters = ['a', 'b', 'c', 'd', 'e']
for i, letter in enumerate(letters):
    print(i, letter)

這段程式碼將輸出:

0 a
1 b
2 c
3 d
4 e