返回顶部
首页 > 资讯 > 后端开发 > Python >Python 迭代器Iterator详情
  • 740
分享到

Python 迭代器Iterator详情

2024-04-02 19:04:59 740人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录前言1. 什么是迭代器?2. 迭代器类型3. 迭代器分类容器迭代器遍历迭代器自定义迭代器总结前言 当我们需要对列表(list)、元组(tuple)、字典(dictionary)和

前言

当我们需要对列表(list)、元组(tuple)、字典(dictionary)和集合(set)的元素进行遍历时,其实python内部都是启动迭代器来完成操作的。

迭代器(Iterator)并非Python独有的,在c++和Java中也出现了此概念。迭代器可以帮助我们解决面对复杂的数据场景时,快速简便的获取数据

1. 什么是迭代器?

  • 迭代器是一个表示数据流的对象,当我们调用next()方法时会返回容器中的下一个值
  • 迭代器中包含__iter____next__()方法。通过__iter__方法可以返回迭代器对象本身的方法。__next__()方法会使cur指针始终指向当前位置,即返回容器中的下一个值,如果容器中没有更多元素了,则会抛出StopIteration异常。
  • 迭代器(iterator)也是可迭代的对象(iterable)

2. 迭代器类型

  • Python中支持容器进行迭代,同时也提供迭代器协议支持用户自定义类进行迭代
  • 容器迭代器:container.__iter__()方法实现容器对象迭代
  • 迭代器协议:__iter__()方法和__next__()方法
  • __iter__():返回迭代器本身,容器可以与for...in结合使用
  • __next__():返回迭代器返回下一项

3. 迭代器分类

容器迭代器

data = [1,2,3,4]
it = iter(data)
print(next(it))
print(next(it))
  • Python中提供的内置容器有:list、tuple、dictionary 和 set都是可迭代对象
  • 调用iter()方法获取对应的迭代对象
  • 调用next()方法获取迭代对象下一项值。每一次调用next之后,会自动往后移到到一位,获取后面一位的数据。

遍历迭代器

for i in it:
    print(i)

对于可迭代对象,我们也可以使用for...in来进行迭代

自定义迭代器

class Myiter:
    def __init__(self,times):
        self.times = times
    def __iter__(self):
        self.n = 0
        return self
    def __next__(self):
        if self.n <= self.times:
           result = 3 ** self.n
            self.n += 1
            return result
        else:
            raise StopIteration
data = Myiter(4)
it = iter(data)
# 第1次
print(next(it))
# 第2次
print(next(it))
# 第3次
print(next(it))
# 第4次
print(next(it))
# 第5次
print(next(it))
# 第6次,超出范围触发StopIteration
print(next(it))
...
1
3
9
27
81
Traceback (most recent call last):
  File "E:\workspace\uiat\cookbooks\tester.py", line 67, in <module>
    print(next(it))
  File "E:\workspace\uiat\cookbooks\tester.py", line 51, in __next__
    raise StopIteration
StopIteration
...
  • 创建的对象/类需要实现 __iter__() 和 __next__()两个方法即可作为迭代器
  • 迭代器中__iter__()返回迭代器本身方法
  • 迭代器中__next__()方法允许进行其他操作,但是必须返回迭代器的下一项
  • 为了防止迭代永远进行下去,Python提供stopIterator语句,终止迭代

总结

本期,我们对Python Iterator迭代器由__iter__()方法和__next__()方法组成。迭代器分为Iterator和iteratable两种,因此迭代器本身也是可迭代对象的。

迭代器分为容器迭代和自定义迭代。

到此这篇关于Python 迭代器Iterator详情的文章就介绍到这了,更多相关Python Iterator内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python 迭代器Iterator详情

本文链接: https://lsjlt.com/news/118406.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python 迭代器Iterator详情
    目录前言1. 什么是迭代器?2. 迭代器类型3. 迭代器分类容器迭代器遍历迭代器自定义迭代器总结前言 当我们需要对列表(list)、元组(tuple)、字典(dictionary)和...
    99+
    2024-04-02
  • python iterator(迭代器)
    迭代:重复做一件事iterable(可迭代)对象:支持“每次仅返回自身所包含的其中一个元素”的对象iterable对象实现了__iter__方法     序列类型,如:list、str、tuple     非序列类型,如:dict、file...
    99+
    2023-01-31
    迭代 python iterator
  • C++迭代器iterator详解
    目录1.迭代器分类1) 正向迭代器2) 常量正向迭代器3) 反向迭代器4) 常量反向迭代器2.迭代器用法示例3.迭代器:++it 与 it++ 哪个好?(1)前置返回一个引用,后置返...
    99+
    2024-04-02
  • Python生成器与迭代器详情
    目录1、生成器 2、迭代器与可迭代的生成器1、生成器 现在可以通过生成器来直接创建一个列表,但是由于内存的限制,列表的容量肯定是有限的,如果我们需要一个包含几百个元素的列表,但是每...
    99+
    2024-04-02
  • Python浅析迭代器Iterator的使用
    目录前言迭代器是什么自定义迭代器前言 当我们需要对列表(list)、元组(tuple)、字典(dictionary)和集合(set)的元素进行遍历时,其实Python内部都是启动迭代...
    99+
    2024-04-02
  • Java中Iterator(迭代器)的用法详解
    Java迭代器(Iterator)是 Java 集合框架中的一种机制,它提供了一种在不暴露集合内部实现的情况下遍历集合元素的方法。Java Iterator(迭代器)不是一个集合,它...
    99+
    2023-05-19
    Java Iterator迭代器使用 Java Iterator Java 迭代器
  • Java中Iterator迭代器的使用详解
    目录Iterator接口迭代器的实现原理增强for练习1:遍历数组练习2:遍历集合Iterator接口 在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个...
    99+
    2022-11-13
    Java Iterator迭代器 Java Iterator Java 迭代器
  • Python中Iterator迭代器的使用杂谈
    迭代器是一种支持next()操作的对象。它包含一组元素,当执行next()操作时,返回其中一个元素;当所有元素都被返回后,生成一个StopIteration异常。 >>>a=[1,2,...
    99+
    2022-06-04
    杂谈 迭代 Python
  • Python迭代器介绍及作用详情
    目录迭代器:初探什么是迭代器?通过迭代器进行迭代迭代器 for 循环的工作构建自定义迭代器Python 无限迭代器Python 迭代器的好处总结 迭代器:初探 Python 学习的人...
    99+
    2024-04-02
  • Python迭代和迭代器详解
    迭代器 迭代器(iterator)有时又称游标(cursor)是程式设计的软件设计模式,可在容器物件(container,例如链表或阵列)上遍访的界面,设计人员无需关心容器物件的内存分配的实现细节。 摘自维...
    99+
    2022-06-04
    迭代 详解 Python
  • 详解Python迭代和迭代器
    我们将要来学习python的重要概念迭代和迭代器,通过简单实用的例子如列表迭代器和xrange。 可迭代 一个对象,物理或者虚拟存储的序列。list,tuple,strins,dicttionary,set...
    99+
    2022-06-04
    迭代 详解 Python
  • java迭代器iterator怎么使用
    在Java中,迭代器(Iterator)是用来遍历集合(Collection)中元素的工具。迭代器提供了一种统一的方式来访问集合中的...
    99+
    2023-10-18
    java
  • 白话解释 迭代器(ITERATOR)和
    来源:本人博客 前言 迭代器和生成器可能对于一些人来说知道是什么东东,但是并没有比较深入的了解,那么今天,就跟随我来了解一下这两者的概念,关系及优点,我将使用python中的迭代器和生成器作为演示,如果你不懂python没关系,明白了概念...
    99+
    2023-01-31
    白话 迭代 ITERATOR
  • C++迭代器iterator怎么使用
    C++迭代器(iterator)是一种用于访问容器中元素的对象,可以用来遍历容器中的元素,或者修改容器中的元素。首先,你需要在代码中...
    99+
    2023-08-15
    C++ iterator
  • python中实现迭代器(iterator)的方法示例
    概述 迭代器是访问集合元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 延迟计算或惰性求值 (Lazy evaluation) 迭代器不要求你事先准...
    99+
    2022-06-04
    示例 迭代 方法
  • JavaScript中Iterator迭代器接口和循环
    目录JavaScript的迭代器(Iterator)介绍for...of循环与for...in循环JavaScript的迭代器(Iterator)介绍 迭代器是数据结构遍历的一种机制...
    99+
    2024-04-02
  • php迭代器iterator的作用是什么
    这篇文章主要介绍“php迭代器iterator的作用是什么”,在日常操作中,相信很多人在php迭代器iterator的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php迭代器iterator的作用...
    99+
    2023-06-20
  • Java使用迭代器Iterator遍历集合
    目录前言Iterator 概述Iterator 的使用使用 next() 方法遍历集合使用 remove 方法删除元素迭代器 Iterator 的执行原理使用foreach循环遍历集...
    99+
    2022-12-08
    Java迭代器Iterator遍历集合 Java 遍历集合 Java迭代器Iterator
  • Java Iterator 与 Iterable:揭秘迭代器与可迭代对象的世界
    在Java编程中,Iterator和Iterable接口是用于处理集合中元素的重要工具。Iterator接口提供了对集合元素进行迭代访问的方法,而Iterable接口则定义了集合的可迭代性,使集合中的元素可以通过Iterator访问。这...
    99+
    2024-02-13
    Iterator, Iterable, Java, Collection, Data Structure, Iteration
  • python yield迭代器详解
    目录一、yield迭代器二、使用步骤1.引入库2.读入数据总结一、yield迭代器 在python深度学习模型读取数据时,经常遇到yield,互联网搜索后,将比较容易理解的说明记录一...
    99+
    2022-11-13
    python yield python yield迭代器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作