banner
满五

满五的博客

Non-Binary | High School | OI | Code | Photography | etc. 独立开发者、摄影/文学/电影爱好者 English/中文,日本語を勉強しています INFP | they
github
twitter_id
email

Python 中的 zip() 和 enumerate()

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,否則會報錯。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。