gpt4 book ai didi

python - python列表理解中的分配

转载 作者:行者123 更新时间:2023-12-05 05:49:01 25 4
gpt4 key购买 nike

我正在寻找一种在列表理解中进行分配的方法。我想将类似以下代码的内容重写为列表理解。

我有这个“昂贵”的功能:

import time
def f(x):
time.sleep(1)
return x + 1

这个循环:

l = []
for value in [1, 2, 3]:
x = f(value)
l.append(x + x)

我想将其重写为列表理解:

l = [
f(value) + f(fvalue)
for value in [1, 2, 3]
]

但由于调用 f(value) 的成本很高,我想尽量减少调用次数(以下代码片段不会运行):

l = [
(x = f(value))
x + x
for value in [1, 2, 3]
]

我读过赋值表达式 (:=) ( https://www.python.org/dev/peps/pep-0572/#changing-the-scope-rules-for-comprehensions ),但我似乎无法理解。

最佳答案

我的方法是嵌套多个列表理解,比如

l_new = [x * x * y for x, y in [f(value) for value in [1, 2, 3]]]

所以 f() 应该只为每个值调用一次。

关于python - python列表理解中的分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70730199/

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