您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python用zip函数同时遍历多个迭代器示例详解

5b51 2022/1/14 8:18:39 python 字数 3537 阅读 402 来源 www.jb51.cc/python

前言 本文主要介绍的是Python如何使用zip函数同时遍历多个迭代器,文中的版本为Python3,zip函数是Python内置的函数。下面话不多说,来看详细的内容。

概述

前言

本文主要介绍的是Python如何使用zip函数同时遍历多个迭代器,文中的版本为python3,zip函数是Python内置的函数。下面话不多说,来看详细的内容

应用举例

>>> list1 = ['a','b','c','d']
>>> list2 = ['apple','boy','cat','dog']
>>> for x,y in zip(list1,list2):
  print(x,'is',y)
# 输出
a is apple
b is boy
c is cat
d is dog

这样就很简洁地实现了同时遍历两个列表,very pythonic!!!

原理说明

python3中的zip函数可以把两个或者两个以上的迭代器封装成生成器,这种zip生成器会从每个迭代器中获取该迭代器的下一个值,然后把这些值组装成元组(tuple)。这样,zip函数就实现了平行地遍历多个迭代器。

注意

如果输入的迭代器长度不同,那么,只要有一个迭代器遍历完,zip就不再产生元组了,zip会提前终止,这可能导致意外的结果,不可不察。如果不能确定zip所封装的列表是否等长,可以改用 itertools 内置模块中的zip_longest 函数,这个函数不在乎它们的长度是否相等。

在Python2中,zip不是生成器,它平行地遍历这些迭代器,组装元组,并把这些元组所构成的列表一次性完整地返回,这可能会占用大量内存并导致程序崩溃,如果在Python2中要遍历数据量大的迭代器,推荐使用 itertools 内置模块中的 izip 函数

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

总结

以上是编程之家为你收集整理的Python用zip函数同时遍历多个迭代器示例详解全部内容,希望文章能够帮你解决Python用zip函数同时遍历多个迭代器示例详解所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶