用一段代码表现出迭代器和生成器的作用
时间: 2023-11-19 19:06:58 浏览: 29
迭代器:
```python
# 定义一个迭代器
class MyIterator:
def __init__(self, start, end):
self.current = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.current < self.end:
result = self.current
self.current += 1
return result
else:
raise StopIteration
# 使用迭代器遍历列表
my_list = [1, 2, 3, 4, 5]
my_iterator = iter(my_list)
for i in my_iterator:
print(i)
```
生成器:
```python
# 定义一个生成器
def my_generator(start, end):
current = start
while current < end:
yield current
current += 1
# 使用生成器遍历列表
my_list = [1, 2, 3, 4, 5]
for i in my_generator(1, 6):
print(i)
```
以上代码演示了两种不同的遍历列表的方式,一种使用迭代器,一种使用生成器。迭代器使用的是类的方式实现,需要实现`__iter__`和`__next__`方法,而生成器使用的是函数的方式实现,需要使用`yield`关键字。两种方式都可以实现遍历列表的功能,但是生成器更加简洁明了,代码也更加易于理解。