可迭代对象,迭代器(对象),生成器(对象)

迭代器

可迭代对象:可迭代对象实现了__iter__方法,该方法返回一个迭代器对象。

迭代器: 那么什么迭代器呢?它是一个带状态的对象,他能在你调用next()方法的时候返回容器中的下一个值,任何实现了__iter__和__next__()(python2中实现next())方法的对象都是迭代器,__iter__返回迭代器自身,__next__返回容器中的下一个值,如果容器中没有更多元素了,则抛出StopIteration异常。

a = [‘aaa‘, ‘bbb‘, ‘ccc‘]
my_iterable = MyIterable(a)
res2 = iter(my_iterable)

while True:
    try:
        print(next(res2))
    except StopIteration as e:
        break

生成器

class Project(object):
    def __init__(self, start, end):
        self.start = start
        self.end = end

    def isPrimeNum(self, k): #  判断素数
        if k < 2:
            return False
        for i in range(2, k):
            if k % i == 0:
                return False
        return True

    def __iter__(self):
        for i in range(self.start, self.end):
            if self.isPrimeNum(i):
                yield i

###################################
res = Project(1,100)
print(iter(res))

原文地址:https://www.cnblogs.com/lilied/p/8318890.html

时间: 2024-10-01 22:35:40

可迭代对象,迭代器(对象),生成器(对象)的相关文章

完全理解Python迭代对象、迭代器、生成器

在了解Python的数据结构时,容器(container).可迭代对象(iterable).迭代器(iterator).生成器(generator).列表/集合/字典推导式(list,set,dict comprehension)众多概念参杂在一起,难免让初学者一头雾水,我将用一篇文章试图将这些概念以及它们之间的关系捋清楚. 容器(container) 容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中.通常这类数据

[转载]完全理解Python迭代对象、迭代器、生成器

译文地址:liuzhijun 在了解Python的数据结构时,容器(container).可迭代对象(iterable).迭代器(iterator).生成器(generator).列表/集合/字典推导式(list,set,dict comprehension)众多概念参杂在一起,难免让初学者一头雾水,我将用一篇文章试图将这些概念以及它们之间的关系捋清楚. 容器(container) 容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素

Python迭代对象、迭代器、生成器

在了解Python的数据结构时,容器(container).可迭代对象(iterable).迭代器(iterator).生成器(generator).列表/集合/字典推导式(list,set,dict comprehension)众多概念参杂在一起,难免让初学者一头雾水,我将用一篇文章试图将这些概念以及它们之间的关系捋清楚. 容器(container) 容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中.通常这类数据

完全理解 Python 迭代对象、迭代器、生成器

2017/05/29 · 基础知识 · 9 评论 · 可迭代对象, 生成器, 迭代器 原文出处: liuzhijun 本文源自RQ作者的一篇博文,原文是Iterables vs. Iterators vs. Generators,俺写的这篇文章是按照自己的理解做的参考翻译,算不上是原文的中译版本,推荐阅读原文,谢谢网友指正. 在了解Python的数据结构时,容器(container).可迭代对象(iterable).迭代器(iterator).生成器(generator).列表/集合/字典推导式

流畅的python14 章可迭代的对象、迭代器 和生成器

可迭代的对象.迭代器和生成器 迭代是数据处理的基石.扫描内存中放不下的数据集时,我们要找到一种惰性获取数据项的方式,即按需一次获取一个数据项.这就是迭代器模式(Iterator pattern). 迭代器用于从集合中取出元素:而生成器用于“凭空”生成元素.通过斐波纳契数列能很好地说明二者之间的区别:斐波纳契数列中的数有无穷个,在一个集合里放不下.不过要知道,在 Python社区中,大多数时候都把迭代器和生成器视作同一概念. Sentence类 单词序列 import re import repr

Python 迭代对象、迭代器、生成器详解

在了解Python的数据结构时,容器(container).可迭代对象(iterable).迭代器(iterator).生成器(generator).列表/集合/字典推导式(list,set,dict comprehension)众多概念参杂在一起,难免让初学者一头雾水,本文将一一为大家进行介绍,希望对大家学习python有所帮助. 容器(container) 容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用 in ,  not in 关键字判断元素是否包含在容器

第八章 Python可迭代对象、迭代器和生成器

8.1 可迭代对象(Iterable) 大部分对象都是可迭代,只要实现了__iter__方法的对象就是可迭代的. __iter__方法会返回迭代器(iterator)本身,例如: >>> lst = [1,2,3] >>> lst.__iter__() <listiterator object at 0x7f97c549aa50> Python提供一些语句和关键字用于访问可迭代对象的元素,比如for循环.列表解析.逻辑操作符等. 判断一个对象是否是可迭代对象

Python 可迭代的对象、迭代器和生成器

迭代是数据处理的基石.扫描内存中放不下的数据集时,我们要找到一种惰性获取数据项的方式,即按需一次获取一个数据项.这就是迭代器模式(Iterator pattern). p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 25.0px Helvetica } Sentence类第1版:单词序列 我们要实现一个 Sentence 类,以此打开探索可迭代对象的旅程.我们向这个类的构造方法传入包含一些文本的字符串,然后可以逐个单词迭代.第 1 版要实现序列协议,这

【python】 可迭代对象、迭代器、生成器

可迭代对象 iterable 可直接作用于for循环的对象统称为可迭代对象. 有 list. dict.tuple.set.str等数据类型,还有 generator(包括生成器和带yield的generator function).包括了有序和无序对象. 要判断一个对象是否为iterable对象.方法如下: from collections import Iterable isinstance([],Iterable) 迭代器 iterator 迭代,即一些事要重复好多次,就像在循环中做的那样

python之迭代器、生成器、可迭代对象

迭代器 iterator 迭代,即一些事要重复好多次,就像在循环中做的那样. 一个对象是否可迭代,全都取决于这个对象是否有__iter__方法,只要该对象实现了__iter__方法,调用对象的__iter__方法,就回返回一个迭代器,这个迭代器一定具有next方法(调用这个方法时不需要任何参数),在调用这个迭代器的next方法时,迭代器就回返回它的下一个值,当迭代器中没有值可以返回了,就回抛出一个名为StopIteration的异常,停止迭代. 准确的说,一个实现了__iter__方法的对象是可