gpt4 book ai didi

python - 如何在列表理解中按函数返回值执行过滤器?

转载 作者:太空宇宙 更新时间:2023-11-03 13:09:12 27 4
gpt4 key购买 nike

基本逻辑如下:

result = []

for item in item_lst:
code = foo(item)
if code != -1:
result.append(code)

有了列表理解,我应该写两次:

result = [foo(item) for item in item_lst]
result = [code for code in result if code != -1]

或者

result = [foo(item) for item in item_lst if foo(item) != -1]

这将调用函数 foo 两次。

有没有更好的解决方案?

最佳答案

您可以使用 generator expression避免创建第二个列表:

result = [code for code in (foo(item) for item in item_ls) if code != -1]

这里:

(foo(item) for item in item_ls) 

是一个生成器表达式。没有创建中间列表。这可能有助于节省内存。

关于python - 如何在列表理解中按函数返回值执行过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48019102/

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