python生成器和迭代器的应用场景并给出举例代码
时间: 2023-06-09 08:02:28 浏览: 121
Python生成器和迭代器的应用场景是在需要处理大量数据时,可以逐个处理,不必一次性读入内存。通过生成器和迭代器,可以大量节省内存空间,并且提高程序运行效率。
举例代码如下:
1. 迭代器示例代码:
```python
class MyRange:
def __init__(self, start, stop):
self.current = start
self.stop = stop
def __iter__(self):
return self
def __next__(self):
if self.current < self.stop:
value = self.current
self.current += 1
return value
else:
raise StopIteration
for i in MyRange(0, 5):
print(i)
```
这段代码实现了一个自定义的迭代器,用于生成一定范围内的数字序列。在每次迭代时,只生成当前需要的数字,而不是一次性生成整个序列。
2. 生成器示例代码:
```python
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
f = fibonacci()
for i in range(10):
print(next(f))
```
这段代码实现了一个斐波那契数列的生成器。通过生成器,每次只生成下一个数字,而不是一次性生成整个数列。这种方法可以无限地生成斐波那契数列,而不会占用过多的内存空间。
阅读全文