我有一小段代码,里面有两个函数。 如果第一个函数收到响应,我想调用它,然后对该响应执行一个函数。然后将结果赋给另一个变量。你知道吗
从一个冗长的角度来看:
result = get_something()
if result:
answer = transform(result)
或者我可以
if get_something():
answer = transform(get_something())
但这需要调用第一个函数两次
有没有一种方法可以在一行上完成这一切,有点像三元数(可能是lambda)
answer = transform(result) if get_something() else None
显然,在上面没有什么可以说明结果是什么,但我需要说的是基本上在哪里result = get_something()
我可以在一个列表中这样做,但这似乎有点愚蠢
answer = [transform(x) for x in [get_something()] if x][0]
我们可以在python3.8中使用assignment expressions:
在最新的Python版本(Python 3.8)中,有一个新的赋值可能对您有用,
:=
:虽然我不完全理解这样做的原因(这比其他任何方法都不清楚),但下面是一个使用lambda的例子:
相关问题 更多 >
编程相关推荐