python中的生成器

作者: 追光的焕焕 | 来源:发表于2020-02-28 13:23 被阅读0次

(1) yield

生成器其实也是一个迭代器,可以进行迭代,注意的它只可以迭代一次,由于它的值并没有全部放进去内存中,而是在运行过程中生成值,故节约了内存空间。我们可以遍历这个生成器或者使用一个for循环。
下面举一个例子进行说明:

def func(n):
    a = b = 1
    for i in range(n):
        yield a
        a, b = b, a + b
for x in func(100):
    print(x)

这样子消耗的内存远远比写一个列表进行存储数据占用的内存少,节约了开发的内存资源。

(2) next()函数

next()函数可以依次查看序列的下一个元素,如果查看的元素超出了序列的索引时,则引发StopIteration异常。
下面举个简单的例子说明一下:

def func():
    for i in range(5):
        yield i
n = func()
print(next(n))
print(next(n))
print(next(n))
print(next(n))
print(next(n))
#报错
print(next(n))

输出结果:

0
1
2
3
4
Traceback (most recent call last):
    print(next(n))
StopIteration

(3) iter()函数

iter函数可以将一个可迭代对象转化成迭代器对象,那字符串举例子吧,s = 'pyhton' 如果直接next(s),肯定会报错,报错类型:TypeError: 'str' object is not an iterator。字面上的意思,字符串对象不是迭代器,这时我们需要将字符串转化为迭代器对象。

iter()函数的使用如下:

s = 'python'
s_iter = iter(s)
print(next(s_iter))
print(next(s_iter))
print(next(s_iter))
print(next(s_iter))
print(next(s_iter))
print(next(s_iter))

输出:

p
y
t
h
o
n

相关文章

  • python输出杨辉三角

    知识点 1. python中的生成器 generator python生成器 2. python中-1索引表示容器...

  • python生成器

    什么是python生成器? 在python中,生成器是根据某种算法边循环边计算的一种机制。 生成器有什么特点? 1...

  • python笔记

    Python format格式化输出 浅谈 Python 的 with 语句 Python中迭代原理生成器和迭代原...

  • 14-核心编程2

    生成器 概念在Python中, 一边循环一边计算的机制, 称为生成器: generator 创建生成器: G = ...

  • 理解Python中的生成器及yield关键字

    参考资料: Python生成器 python生成器到底有什么优点?

  • 生成器 迭代器 装饰器

    生成器在Python中,这种一边循环一边计算的机制,称为生成器:generator。 创建生成器要创建一个生成器,...

  • 生成器

    生成器 在python中,使用了yield的函数被称为生成器(generator)。生成器是一个返回迭代器的函数,...

  • Python 入门之 Python三大器 之 生成器

    Python 入门之 Python三大器 之 生成器 1、生成器 (1)什么是生成器? 核心:生成器的本质就是一个...

  • Python yield 的使用

    Python中,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 gene...

  • python生成器(generator)

    1.生成器(generator)概念 生成器是迭代器,生成器提供了非常方便的自定义迭代器的途径,在Python中,...

网友评论

    本文标题:python中的生成器

    本文链接:https://www.haomeiwen.com/subject/nankhhtx.html