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


Posted in Python onNovember 14, 2016

前言

本文主要介绍的是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 相关文章推荐
python中对list去重的多种方法
Sep 18 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
Jun 07 Python
TensorFlow如何实现反向传播
Feb 06 Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 Python
python安装requests库的实例代码
Jun 25 Python
python 模拟银行转账功能过程详解
Aug 06 Python
Python中模块(Module)和包(Package)的区别详解
Aug 07 Python
在pycharm中显示python画的图方法
Aug 31 Python
python实现银行管理系统
Oct 25 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
Apr 16 Python
celery在python爬虫中定时操作实例讲解
Nov 27 Python
PyTorch中clone()、detach()及相关扩展详解
Dec 09 Python
Python端口扫描简单程序
Nov 10 #Python
Python迭代和迭代器详解
Nov 10 #Python
python通过cookie模拟已登录状态的初步研究
Nov 09 #Python
Python内置函数OCT详解
Nov 09 #Python
windows10系统中安装python3.x+scrapy教程
Nov 08 #Python
简单谈谈python中的多进程
Nov 06 #Python
python自带的http模块详解
Nov 06 #Python
You might like
终于听上了直流胆调频
2021/03/02 无线电
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
js 表单验证方法(实用)
2009/04/28 Javascript
jquery中$.post()方法的简单实例
2014/02/04 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
2016/01/07 Javascript
jquery.validate 自定义验证方法及validate相关参数
2016/01/18 Javascript
jQuery实现背景弹性滚动的导航效果
2016/06/01 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
angularjs ocLazyLoad分步加载js文件实例
2017/01/17 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
微信小程序 sha1 实现密码加密实例详解
2017/07/06 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
[03:11]不朽宝藏三外观展示
2020/09/18 DOTA
50行代码实现贪吃蛇(具体思路及代码)
2013/04/27 Python
Python中的面向对象编程详解(下)
2015/04/13 Python
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
python基于K-means聚类算法的图像分割
2019/10/30 Python
Python PyInstaller库基本使用方法分析
2019/12/12 Python
配置python的编程环境之Anaconda + VSCode的教程
2020/03/29 Python
英国旅游额外服务市场领导者:Holiday Extras(机场停车场、酒店、接送等)
2017/10/07 全球购物
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
英国最大的在线蜡烛商店:Candles Direct
2019/03/26 全球购物
个人简历中的自我评价范例
2013/10/29 职场文书
函授毕业生的自我鉴定
2013/11/26 职场文书
2013年员工自我评价范文
2013/12/27 职场文书
预备党员入党思想汇报
2014/01/04 职场文书
投标单位介绍信
2014/01/09 职场文书
房地产财务部员工岗位职责
2014/03/12 职场文书
绿色学校实施方案
2014/03/31 职场文书
公司承诺书怎么写
2014/05/24 职场文书
动物科学专业求职信
2014/07/27 职场文书
综合测评个人总结
2015/03/03 职场文书