首页 > 试题广场 >

什么是python的生成器?

[问答题]

请你简要介绍一下python的生成器是什么

生成器是能够动态提供数据的可迭代对象,程序执行时,才能获得数据,数据不占用内存,现用现生成。使用next函数获取数据, 生成器包含生成器函数和生成器表达式,含有yield语句的函数就是生成器函数,带有括号的for循环语句是生成器表达式。
发表于 2019-01-05 01:12:01 回复(1)
生成器是一种特殊的迭代器。在程序需要使用到数据时才生成,不占用内存。 而我们list()之类的生成语句在大量需要使用到的数据中会耗损资源严重。所以使用生成器能更好地利用资源。 迭代器的特征:必须拥有--iter--和--next--函数。含有yield也算是生成器。
发表于 2019-02-21 11:17:58 回复(0)

python生成器是一个iterator对象,不占用存储,需要用到下一个元素再根据算式计算出来,可以用在for循环中,也可以用next函数调用。

生成器有两种定义方式,一种是圆括号的形式,一种是函数中写yield的形式。

编辑于 2018-12-23 07:38:46 回复(0)
生成器是一种特殊的迭代器
发表于 2019-06-04 20:23:45 回复(0)
迭代对象,可以通过括号或者yeild产生,不占用内存
发表于 2019-03-10 10:27:33 回复(0)
python生成器:实现了__iter__和__next__方法的类
发表于 2022-04-04 22:53:44 回复(0)
含有yield的函数,用于实现迭代。迭代是记住遍历的对象,迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
发表于 2020-10-13 19:42:59 回复(0)
<p>圆括号或yeild形式,迭代,不占内存</p>
发表于 2020-07-23 09:53:00 回复(0)
具有yiled关键字的函数就是生成器函数,调用生成器函数就返回一个生成器,循环生成器时内部函数才会执行
发表于 2020-04-21 10:42:28 回复(0)
定义一个函数,用yield返回一个迭代器,则这个函数就是一个生成器函数,调用该函数返回的对象就是生成器
发表于 2019-09-27 23:59:04 回复(0)

是一特殊的迭代器 延迟操作。也就是只有在使用的时候,才会创造,在一定程度上减少内存占用。

发表于 2019-07-27 09:38:30 回复(0)
IDE集成环境
发表于 2019-06-17 09:41:28 回复(0)
生成器是一个返回值为可迭代对象的函数,一般包含yield和for循环。
发表于 2019-05-31 23:20:10 回复(0)

python生成器(generator)可用作控制循环迭代,占内存少。可用()创建,调用next()取值,直到捕获异常终止。也可以利用yield一次性返回一个结果,或者挂起函数。

发表于 2019-05-31 21:41:19 回复(0)
生成器是一种可以动态提供数据的可迭代对象,现用现生成,不占用内存。可以用next()获取里面的对象。当里面没有数据时,会报错。可以通过yield或括号里写上for循环创建生成器。
发表于 2019-05-17 13:50:22 回复(0)
特殊的迭代器,可以遍历,每次遍历输出一个值
发表于 2019-05-11 16:34:54 回复(0)
一种运行时生成数据的可迭代对象,通过next生成数据
发表于 2019-04-23 17:35:30 回复(0)
jbmmklmhhhjjjji
发表于 2019-04-18 06:27:00 回复(0)

列表元素可以按照某种算法推算出来,在循环的过程中不断推算出后续元素,不必创建完整的list, 节省大量的空间, 这种一边循环一边计算的机制,称为生成器:generator


发表于 2019-04-17 18:32:26 回复(0)
生成器 是迭代器的一种,它实现了next和iter方法,在函数中的任何位置可以使用yield关键字返回一个对象,当用next函数调用生成器对象时运行时到yield关键字时就会返回后面的对象。,并且会将函数当前的状态保存,下次就会接着后面的执行。yield可以接收参数,当调用生成器的send方法是会讲参数发给yield前面的接收变量,函数会先运行yield返回并暂停,下次会接着yield的赋值开始。使用yield可以实现协程。
发表于 2019-04-16 20:52:18 回复(0)