在Python中进行条件赋值的最佳方法
我经常用这个,但看起来不太好:
a = (lambda x: x if x else y)(get_something())
所以我写了这个函数:
def either(val, alt):
if val:
return val
else:
return alt
这样你就可以这样做:
a = either(get_something(), y)
有没有类似于T-SQL中ISNULL的内置函数可以用?
6 个回答
7
你可以使用:
a = get_something() or y
如果 get_something
在布尔上下文中是 True
(也就是“真”),那么它的值会被赋给 a
。否则,y
会被赋给 a
。
7
简单!
如果你需要更多的条件代码:
a = b if b else val
对于你的代码:
a = get_something() if get_something() else val
这样你就可以处理像这样的复杂条件:
a = get_something() if get_something()/2!=0 else val
39
这个 or
操作符正是你想要的效果:
get_something() or y
实际上,它是可以连着用的,就像 COALESCE
一样(而不是像 ISNULL
)。下面这个表达式会返回第一个能变成真值的参数。
A or B or C