gpt4 book ai didi

python - 我的Python生成器函数真的很懒吗?

转载 作者:行者123 更新时间:2023-12-01 03:00:46 26 4
gpt4 key购买 nike

我制作的简单生成器函数:

def myfunc(text):
for i in text[::-1]:
yield(i)

for i in myfunc("anytext"):
print(i)

生成器函数内的text[::-1]将首先被评估还是将被延迟评估(预期来自生成器函数)?

最佳答案

文本在迭代之前将被反转。不可能有其他方式; for 循环需要反转文本才能对其进行迭代。

要使其真正变得懒惰,您需要使用索引。

def myfunc(text):
for i in range(len(text) - 1, -1, -1):
yield text[i]

在 Python 2 中,使用 xrange 代替 range

当然,您基本上已经重新实现了内置函数reversed()

关于python - 我的Python生成器函数真的很懒吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43861963/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com