gpt4 book ai didi

python - 可以从 Python 列表理解中捕获返回值以使用条件吗?

转载 作者:太空狗 更新时间:2023-10-29 21:22:53 25 4
gpt4 key购买 nike

我想在列表推导中构建一个值,但也过滤该值。例如:

[expensive_function(x) for x in generator where expensive_function(x) < 5]

我想避免每次迭代调用两次 expensive_function

generator 可能会返回一个无限序列,并且不会延迟计算列表理解。所以这是行不通的:

[y in [expensive_function(x) for x in generator where expensive_function(x)] where y < 5]

我可以用另一种方式来写这个,但对于列表理解来说感觉是正确的,我确信这是一种常见的使用模式(可能与否!)。

最佳答案

如果 generator 可能是无限的,您不想使用列表理解。并不是所有的东西都必须是单行的。

def filtered_gen(gen):
for item in gen:
result = expensive_function(item)
if result < 5:
yield result

关于python - 可以从 Python 列表理解中捕获返回值以使用条件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8761437/

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