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

作者:人云木木_张 时间:2023-09-28 06:09:41 

前言

本文主要介绍的是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,遍历,迭代器
0
投稿

猜你喜欢

  • GoLang切片相关问题梳理讲解

    2024-04-29 13:06:11
  • 解决Pycharm 导入其他文件夹源码的2种方法

    2023-03-02 08:32:54
  • golang 输出重定向:fmt Log,子进程Log,第三方库logrus的详解

    2024-04-27 15:40:14
  • Python实现GIF动图以及视频卡通化详解

    2022-06-28 03:27:34
  • vue2.0 elementUI制作面包屑导航栏

    2024-05-02 17:12:16
  • python rolling regression. 使用 Python 实现滚动回归操作

    2021-01-11 09:38:07
  • MySQL 性能优化的最佳20多条经验分享

    2024-01-22 00:42:49
  • Python 多线程处理任务实例

    2021-06-25 04:50:05
  • fckeditor 常用函数

    2023-01-25 15:47:11
  • python实现12306登录并保存cookie的方法示例

    2021-08-05 18:37:55
  • 详解python的变量

    2021-01-26 20:44:20
  • 安装SQL Server 2008时 总是不断要求重启电脑的解决办法

    2024-01-13 10:29:37
  • Oracle中sys和system的区别小结

    2009-11-10 20:36:00
  • 常用正则表达式例子及评注说明

    2008-01-03 13:04:00
  • Python中字典的setdefault()方法教程

    2021-11-18 08:59:00
  • Python快速将ppt制作成配音视频课件的操作方法

    2022-05-18 04:51:17
  • python常用时间库time、datetime与时间格式之间的转换教程

    2023-05-03 01:24:37
  • Mysql数据库表中为什么有索引却没有提高查询速度

    2024-01-13 19:25:16
  • php设计模式之正面模式实例分析【星际争霸游戏案例】

    2023-11-14 10:54:04
  • 快速解决Golang Map 并发读写安全的问题

    2024-04-30 10:03:46
  • asp之家 网络编程 m.aspxhome.com