gpt4 book ai didi

python - 如何在 python 中以更有效的方式重写这个循环

转载 作者:太空宇宙 更新时间:2023-11-04 06:49:34 24 4
gpt4 key购买 nike

我有以下类型的循环:

a = range(10)
b = [something]
for i in range(len(a)-1):
b.append(someFunction(b[-1], a[i], a[i+1]))

然而,for 循环正在扼杀大量的性能。我已经尝试编写一个 Windows 生成器来每次都给我 2 个元素,但它最后仍然需要显式的 for 循环。有没有办法以 Python 的方式使它更短、更高效?

谢谢

编辑:我忘记了 b.. 中的元素。对不起大家。但是,我以前的问题的解决方案对我遇到的其他问题也很有帮助。谢谢。

最佳答案

考虑一下

def make_b( a, seed ):
yield seed
for a,b in zip( a[:-1], a[1:] ):
seed= someFunction( seed, a, b )
yield seed

这让你可以这样做

a = xrange(10)
b= list(make_b(a,something))

注意你可以经常使用这个:

b = make_b(a)

而不是实际创建 b 作为列表。 b 作为生成器函数可为您节省大量存储空间(和一些时间),因为您可能一开始并不真正需要 list 对象。通常,您只需要一些可迭代的东西。

a 类似。它不必是一个 list,只是一些可迭代的东西——比如带有 yield 语句的生成器函数。

关于python - 如何在 python 中以更有效的方式重写这个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1466282/

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