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实现简单QQ单用户机器人的方法
Jul 03 Python
用Python抢过年的火车票附源码
Dec 07 Python
Python3.6正式版新特性预览
Dec 15 Python
Python 登录网站详解及实例
Apr 11 Python
使用python实现knn算法
Dec 20 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
Jan 04 Python
详谈python在windows中的文件路径问题
Apr 28 Python
Python合并多个Excel数据的方法
Jul 16 Python
python zip()函数使用方法解析
Oct 31 Python
python实现视频读取和转化图片
Dec 10 Python
Python如何通过Flask-Mail发送电子邮件
Jan 29 Python
Python实现猜年龄游戏代码实例
Mar 25 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
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
2013/06/01 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
2017/08/07 PHP
JavaScript 高效运行代码分析
2010/03/18 Javascript
编写Js代码要注意的几条规则
2010/09/10 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
JS+CSS实现经典的左侧竖向滑动菜单效果
2015/09/23 Javascript
jQuery Validation Plugin验证插件手动验证
2016/01/26 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
2017/03/02 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
jQuery中可见性过滤器简单用法示例
2018/03/31 jQuery
vue input 输入校验字母数字组合且长度小于30的实现代码
2018/05/16 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
jquery多级树形下拉菜单的实例代码
2019/07/09 jQuery
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
微信小程序整个页面的自动适应布局的实现
2020/07/12 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
如何在JavaScript中正确处理变量
2020/12/25 Javascript
[00:50]深扒TI7聊天轮盘语音出处6
2017/05/11 DOTA
ptyhon实现sitemap生成示例
2014/03/30 Python
python multiprocessing多进程变量共享与加锁的实现
2019/10/02 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
Steiff台湾官网:德国金耳釦泰迪熊
2019/12/26 全球购物
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
团拜会策划方案
2014/06/07 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
班主任工作实习计划
2015/01/16 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python