自学内容网 自学内容网

Python_yield

yield是Python中的关键字,用于在函数中返回生成器。
当函数被调用时,yield会返回一个值,并保存当前函数状态。
下次迭代时,函数会从保存的状态继续执行,而非从头开始。
yield常用于处理大数据集或需要保持内存使用高效的场景。
例如,创建一个简单的生成器函数:

def count_up_to(n):
    for i in range(n):
        yield i

# 使用生成器
for num in count_up_to(5):
    print(num)

此函数会依次返回0到n-1的值。

跟普通的 return 不同的是,yield 会返回一个值,并且保存当前函数的状态,以便下次迭代时从此状态继续执行。这在处理大数据集或需要保持内存使用高效的场景中特别有用。

def simple_generator():
    yield 1
    yield 2
    yield 3

# 使用生成器
gen = simple_generator()

for value in gen:
    print(value)

这个生成器函数会依次返回 1、2 和 3,并且在每次 yield 之后都会暂停,直到被再次调用。
再看一个稍微复杂一点的例子,用 yield 来生成斐波那契数列:

def fibonacci_sequence():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

# 使用生成器
fib = fibonacci_sequence()

for _ in range(10):
    print(next(fib))

在这个例子中,fibonacci_sequence 是一个无限生成斐波那契数列的生成器。利用 yield,我们可以在不占用大量内存的情况下获取数列中的任意多个元素。


原文地址:https://blog.csdn.net/TuringSnowy/article/details/142484172

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!