在Python3中,迭代器(Iterator)和生成器(Generator)是用于处理序列数据的强大工具。它们可以帮助你以一种高效、节省内存的方式处理大型数据集。以下是关于迭代器和生成器的基本概念和用法:

1. 迭代器(Iterator)

迭代器是一个实现了 __iter__() 和 __next__() 方法的对象。通过这两个方法,你可以手动控制迭代过程。
# 创建一个简单的迭代器
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:
            raise StopIteration
        else:
            self.current += 1
            return self.current - 1

# 使用迭代器
my_iter = MyIterator(1, 5)
for item in my_iter:
    print(item)

Python中的内置函数 iter() 可以用于创建迭代器。
my_list = [1, 2, 3, 4, 5]
my_iterator = iter(my_list)

for item in my_iterator:
    print(item)

2. 生成器(Generator)

生成器是一种更简单、更优雅的迭代器实现方式。它使用了 yield 语句来生成值,而不是一次性返回所有结果。这样可以节省内存并更加高效。
# 创建一个简单的生成器
def my_generator(start, end):
    current = start
    while current < end:
        yield current
        current += 1

# 使用生成器
gen = my_generator(1, 5)
for item in gen:
    print(item)

生成器表达式是一种简洁创建生成器的方式:
gen_expr = (x for x in range(1, 5))
for item in gen_expr:
    print(item)

生成器在处理大量数据时特别有用,因为它们只在需要时生成数据,而不是一次性产生所有结果。

以上是迭代器和生成器的基本用法。它们在处理大型数据集时非常实用,可以提高效率并降低内存占用。


转载请注明出处:http://www.zyzy.cn/article/detail/207/Python3