# 迭代器示例
class MyIterator:
def __init__(self, data):
self.data = data
self.index = 0
def __iter__(self):
return self
def __next__(self):
if self.index < len(self.data):
result = self.data[self.index]
self.index += 1
return result
else:
raise StopIteration
# 使用迭代器
my_iter = MyIterator([1, 2, 3, 4, 5])
for item in my_iter:
print(item)
# 生成器示例
def my_generator(data):
for item in data:
yield item
# 使用生成器
my_gen = my_generator([1, 2, 3, 4, 5])
for item in my_gen:
print(item)
迭代器(Iterator):
__iter__()
和 __next__()
方法的对象。__iter__()
返回迭代器对象本身。__next__()
返回序列中的下一个元素,如果序列结束则抛出 StopIteration
异常。MyIterator
类实现了迭代器协议,可以用于遍历一个列表。生成器(Generator):
yield
关键字定义。yield
时,它会返回一个生成器对象,而不是立即执行函数体。__next__()
方法时,函数会从上次 yield
的地方继续执行,直到遇到下一个 yield
或函数结束。my_generator
函数是一个生成器函数,它可以逐个返回列表中的元素。通过这两种方式,我们可以高效地遍历数据结构,而不需要一次性加载所有数据到内存中。
上一篇:python peewee
下一篇:python 读csv
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站