Python zip函数多序列并行迭代详解

周叙
周叙
发布时间:2026-10-13 | 6人浏览过
原创

本文介绍Python中zip函数如何同时迭代多个序列。解析zip在Python 2与3中的行为差异,演示生成元组迭代器的用法,并针对序列长度不一致的情况,介绍使用itertools.zip_longest的解决方案,帮助开发者高效处理多数据源遍历。

Python zip并行遍历多个序列详解

本示例展示如何在Python中使用zip函数实现多个序列的同时迭代,供读者参考学习。

zip函数支持对多个迭代器进行平行遍历。

在Python 3中,zip行为类似生成器,遍历时动态产生元组;而在Python 2中,它会预先构建好所有元组并一次性返回完整列表。

调用zip(x,y,z)将创建一个可返回元组(x,y,z)的迭代器。


>>> x = [1, 2, 3, 4, 5]
>>> y = ['a', 'b', 'c', 'd', 'e']
>>> z = ['a1', 'b2', 'c3', 'd4', 'e5']
>>> for i in zip(x,y,z):
...  print(i)
... 
(1, 'a', 'a1')
(2, 'b', 'b2')
(3, 'c', 'c3')
(4, 'd', 'd4')
(5, 'e', 'e5')

当遍历的序列长度不一致时,zip会在任一序列耗尽时立即停止。若需处理不等长序列,建议使用itertools模块中的zip_longest函数。


>>> x = [1, 2, 3, 4, 5, 6]
>>> y = ['a', 'b', 'c', 'd', 'e']
>>> for i in zip(x,y):
...  print(i)
... 
(1, 'a')
(2, 'b')
(3, 'c')
(4, 'd')
(5, 'e')


>>> from itertools import zip_longest
>>> x = [1, 2, 3, 4, 5, 6]
>>> y = ['a', 'b', 'c', 'd', 'e']
>>> for i in zip_longest(x,y):
...  print(i)
... 
(1, 'a')
(2, 'b')
(3, 'c')
(4, 'd')
(5, 'e')
(6, None)

如需了解更多Python相关内容,可参考本站专题:《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》。

希望上述内容能对您的Python编程实践有所帮助。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表