gpt4 book ai didi

python - 列表理解中的函数 - 是否多次评估

转载 作者:IT老高 更新时间:2023-10-28 20:52:39 25 4
gpt4 key购买 nike

哪个是在 python 中进行列表理解的更好方法(就计算时间和 cpu 周期而言)。在示例 (1) 中,值 f(r) 是在每次迭代中评估还是评估一次并缓存?

  1. y = [x*f(r) for x in xlist]

  2. c = f(r)

    y = [x*c for x in xlist]

在哪里

def f(r):
... some arbitrary function ...

最佳答案

它对每次迭代进行评估。看看这个:

>>> def f():
... print("func")
...
>>> [f() for i in range(4)]
func
func
func
func
[None, None, None, None]

如您所说,如果 f() 没有副作用,则将返回值存储在变量中并使用该变量代替是更快的解决方案。

关于python - 列表理解中的函数 - 是否多次评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6155008/

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