`
李灵晖-raylee
  • 浏览: 138468 次
博客专栏
Group-logo
从头认识java
浏览量:0
文章分类
社区版块
存档分类
最新评论

零基础学python-13.5 多迭代器vs单迭代器

 
阅读更多

对于序列对象来说,有的支持多迭代器,有的只支持单迭代器,那么下面,我们就来看两个例子

1.range,支持多迭代器

>>> r=range(5)
>>> Iter1=iter(r)
>>> Iter2=iter(r)
>>> next(Iter1)
0
>>> next(Iter2)
0
>>> next(Iter1)
1
>>> next(Iter2)
1
>>> 


从代码清单可以看出,range支持多迭代器,迭代器之间不会相互影响

2.map、zip、filter指支持单迭代器,不支持相同结果的迭代器,我们下面以zip为例

>>> z=zip([1,2,3],[5,6,7])
>>> Iter1=iter(z)
>>> Iter2=iter(z)
>>> next(Iter1)
(1, 5)
>>> next(Iter2)
(2, 6)
>>> next(Iter1)
(3, 7)


从代码清单可以看出,由zip组合成的并列序列,虽然建立两个不同的迭代器,但是其实两个迭代器是指向同一个对象,这个是python内部优化的,我们看看下面的代码就明白的

>>> z=zip([1,2,3],[5,6,7])
>>> Iter1=iter(z)
>>> Iter2=iter(z)
>>> Iter1 is Iter2
True
>>> 


两个不同名称的迭代器同是指向一个对象。

总结,这一章节我们主要介绍了range的多迭代器的支持,还有以zip为例子简单说明单迭代器

这一章节就说到这里,谢谢大家

------------------------------------------------------------------

点击跳转零基础学python-目录

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    opencv-2.4.13.5

    OpenCV-2.4.13.5版本可能包含了上述所有功能,但请注意,随着OpenCV的更新迭代,新版本通常会添加更多特性、优化性能并修复已知问题。如果你正在使用这个版本,可能需要考虑升级到最新版本以获取更多支持和改进。...

    Python 核心编程 第二版

     8.11 迭代器和iter()函数   8.12 列表解析   8.13 生成器表达式   8.14 相关模块   8.15 练习   第9章 文件和输入输出   9.1 文件对象   9.2 文件内建函数(open()和file())   9.3...

    Python核心编程(第二版).pdf (压缩包分2部分,第二部分)

     第3章 python基础   3.1 语句和语法   3.1.1 注释(#)   3.1.2 继续(\)   3.1.3 多个语句构成代码组(:)   3.1.4 代码组由不同的缩进分隔   3.1.5 同一行书写多个语句(;)   3.1.6 ...

    Python核心编程(第二版).pdf (压缩包分2部分,第一部分)

     第3章 python基础   3.1 语句和语法   3.1.1 注释(#)   3.1.2 继续(\)   3.1.3 多个语句构成代码组(:)   3.1.4 代码组由不同的缩进分隔   3.1.5 同一行书写多个语句(;)   3.1.6 ...

    Python编程入门经典

    9.4 为循环生成迭代器 133 9.5 使用字典的特殊字符串 替换 135 9.6 重要模块 137 9.6.1 getopt——从命令行中得到 选项 137 9.6.2 使用一个以上的进程 139 9.6.3 线程——在相同的进程中 完成多个工作 141 9.7 本章...

    Python Cookbook

    17.7 用迭代器逐个访问Python序列的元素 608 17.8 从Python可调用的C函数中返回None 611 17.9 用gdb调试动态载入的C扩展 613 17.10 调试内存问题 614 第18章 算法 616 引言 616 18.1 消除序列中的重复 619 ...

    莫烦PYTHON——Python3基础教程 学习心得(4)

    - `map`函数接受一个函数和一个或多个可迭代对象作为参数,对每个元素应用该函数,返回一个包含所有结果的迭代器。 13.4 **copy & deepcopy**: - `copy`模块提供了浅复制功能,只复制对象的最外层引用,对于嵌套的...

    Android应用开发揭秘pdf高清版

    最重要的是还全面介绍了如何利用原生的C,C++(NDK)和Python、Lua等脚本语言(AndroidScriptingEnvironment)来开发Android应用,《Android应用开发揭秘》实战性强,书中的每个知识点都有配精心设计的示例,尤为...

    C++数据抽象和问题求解(第6版).[美]Frank M. Carrano(带详细书签).pdf

    C6.1.1 常见的迭代器操作 481 C6.1.2 使用迭代器操作 482 C6.1.3 实现迭代器 483 C6.2 迭代器的高级功能 485 第17章 堆 489 17.1 ADT堆 490 17.2 堆的基于数组的实现 493 17.2.1 基于数组的堆操作的算法 494 ...

    代码之美(中文完整版).pdf

    第19章 NumPy中的多维迭代器 19.1 N维数组操作中的关键挑战 19.2 N维数组的内存模型 19.3NumPy迭代器的起源 19.4 迭代器的设计 19.5 迭代器的接口 19.6 迭代器的使用 19.7 结束语 第20章 NASA火星漫步者任务中的高...

Global site tag (gtag.js) - Google Analytics