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,否则会报错。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。