Python 中可以使用生成器创建迭代器吗?
是的,我们可以在 Python 中使用迭代器创建生成器。创建迭代器很容易,我们可以使用关键字 `yield` 语句来创建生成器。
Python 生成器是一种创建迭代器简单易用的方法,主要用于声明一个像迭代器一样工作的函数。
生成器是一个函数,我们可以一次迭代一个值,在日常生活中,每个程序员都会使用可迭代对象,例如列表、字符串和字典等。
迭代器是一个可以通过循环迭代的对象。
下面的例子显示了生成器在 Python 中引入了 `Yield` 语句,它的作用类似于返回值。
示例
def generator(): print("program working sucessfully") yield 'x' yield 'y' yield 'z' generator()
输出
<generator object generator at 0x000000CF81D07390>
也可以使用 for 循环创建生成器
示例
for i in generator(): print(i)
输出
program working sucessfully x y z
迭代器对象支持两种方法:1. **__iter__ 方法** 和 2. **__next__ 方法**
__iter__ 方法返回迭代器对象本身。主要用于循环和 in 语句。
__next__ 方法返回迭代器中的下一个值,如果没有更多项返回,则应引发 StopIteration 异常。
示例
class function(object): def __init__(self, lowtemp, hightemp): self.current = lowtemp self.high = hightemp def __iter__(self): 'Returns itself as an iterator object' return self def __next__(self): 'Returns the next value till current is lower than high' if self.current > self.high: raise StopIteration else: self.current += 1 return self.current - 1 c = function(3,20) for i in c: print(i, end=' ')
输出
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
广告