Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python生成器和迭代器

作者:傲骨依旧   发布日期:2025-06-12   浏览:12

# 迭代器示例
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)

解释说明:

  1. 迭代器(Iterator)

    • 迭代器是一个实现了 __iter__()__next__() 方法的对象。
    • __iter__() 返回迭代器对象本身。
    • __next__() 返回序列中的下一个元素,如果序列结束则抛出 StopIteration 异常。
    • 在上面的代码中,MyIterator 类实现了迭代器协议,可以用于遍历一个列表。
  2. 生成器(Generator)

    • 生成器是一种特殊的迭代器,使用 yield 关键字定义。
    • 当函数中包含 yield 时,它会返回一个生成器对象,而不是立即执行函数体。
    • 每次调用生成器的 __next__() 方法时,函数会从上次 yield 的地方继续执行,直到遇到下一个 yield 或函数结束。
    • 在上面的代码中,my_generator 函数是一个生成器函数,它可以逐个返回列表中的元素。

通过这两种方式,我们可以高效地遍历数据结构,而不需要一次性加载所有数据到内存中。

上一篇:python peewee

下一篇:python 读csv

大家都在看

python时间格式

python ord和chr

python list.pop

python的for i in range

npm config set python

python代码简单

python读取文件夹

python中turtle

python 输出时间

python中list代表什么

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站