我想实现像使用lambda
来调用输出为None或list的函数,如果是列表,则获取第一个值。
lambda x: func(x,args)[0] if func(x,args) is not None else None
但是,在这个函数中,它似乎需要调用该函数两次以确定它是否为None。当然,我可以使用try或条件语句编写代码:
def function(x):
try:
return func(x,args)[0]
except (IndexError,TypeError):
return None
或只更改func
的输出。但我仍然很好奇是否有一些方法只用lambda
调用该函数一次。
答案 0 :(得分:14)
这样做:
lambda x: (func(x, args) or [None])[0]