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学习笔记(一)(基础入门之环境搭建)
Jun 05 Python
图文详解WinPE下安装Python
May 17 Python
详解flask入门模板引擎
Jul 18 Python
在Pycharm中设置默认自动换行的方法
Jan 16 Python
简单了解python 邮件模块的使用方法
Jul 24 Python
python实现静态web服务器
Sep 03 Python
Python numpy线性代数用法实例解析
Nov 15 Python
基于Pytorch SSD模型分析
Feb 18 Python
Window系统下Python如何安装OpenCV库
Mar 05 Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 Python
Python机器学习之KNN近邻算法
May 14 Python
PO模式在selenium自动化测试框架的优势
Mar 20 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
PHP实现的分解质因数操作示例
2018/08/01 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
javascript 数组学习资料收集
2010/04/11 Javascript
Javascript中的delete介绍
2012/09/02 Javascript
两个多选select(multiple左右)添加、删除选项和取值实例
2014/05/12 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
jQuery对象与DOM对象之间的相互转换
2015/03/03 Javascript
JavaScript实现向右伸出的多级网页菜单效果
2015/08/25 Javascript
javascript的几种继承方法介绍
2016/03/22 Javascript
javascript 判断是否是微信浏览器的方法
2016/10/09 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
2016/11/01 Javascript
javaScript语法总结
2016/11/25 Javascript
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
JS实现的添加弹出层并完成锁屏操作示例
2017/04/07 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
vue 项目常用加载器及配置详解
2018/01/22 Javascript
vue中动态绑定表单元素的属性方法
2018/02/23 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
a标签调用js的方法总结
2019/09/05 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
python实现逻辑回归的方法示例
2017/05/02 Python
Python numpy 点数组去重的实例
2018/04/18 Python
Python random模块的使用示例
2020/10/10 Python
HTML5实现视频弹幕功能
2019/08/09 HTML / CSS
伦敦时尚生活的缩影:LN-CC
2017/01/24 全球购物
美国新娘礼品店:The Paisley Box
2020/09/08 全球购物
优良学风班申请材料
2014/02/13 职场文书
金融事务专业毕业生求职信
2014/02/23 职场文书
电话客服工作职责
2014/07/27 职场文书
大学同学会活动方案
2014/08/20 职场文书
2015年宣传工作总结
2015/04/08 职场文书
个人借条范本
2015/05/25 职场文书
Mysql查询时间区间日期列表,不会由于数据表数据影响
2022/04/19 MySQL