zip()#
zip()
函數用於將可迭代的物件作為參數,將物件中對應的元素打包成一個個元組,然後返回由這些元組組成的物件。
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> c = [4, 5, 6]
>>> zipped = zip(a, b, c)
>>> zipped
<zip object at 0x00000278786975C0>
>>> list(zipped)
[(1, 4, 4), (2, 5, 5), (3, 6, 6)]
這樣做的一種應用方式是在迭代的時候,可以同時迭代多個陣列:
>>> for i, j, k in zip(a, b, c):
... print(i, j, k)
...
1 4 4
2 5 5
3 6 6
如果遇到陣列不等長,會以最短的長度為準。
如果要按照最長的長度,可以使用另一個函數 zip_longest()
,不多贅述。
enumerate()#
enumerate()
函數用於將一個可遍歷的資料物件 (如列表、元組或字串) 組合為一個索引序列,同時列出資料和索引。
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
這也可以在迭代的時候使用。
注意事項#
這兩個函數使用的時候,需要匯入模組 itertools
,否則會報錯。