表达这个的更短的方式?如果否则B,C = A.

Ton*_*ony 3 python

我发现自己重复了很多:

val = x if x else y
Run Code Online (Sandbox Code Playgroud)

有时x会深入到类或字典中的几个级别,因此它会变得很长:

val = obj.elements[0].something if obj.elements[0].something else y
Run Code Online (Sandbox Code Playgroud)

它看起来很难看,迫使我打字更多.任何已知的缩短方法?也许像这样的内置存在?

val = first_try(x, y)
Run Code Online (Sandbox Code Playgroud)

我想我可以很容易地写自己的,但希望内置.

first_try = lambda x,y: x if x else y
Run Code Online (Sandbox Code Playgroud)

Mar*_*tos 16

or操作符返回转换为真正的第一个参数:

val = x or y
Run Code Online (Sandbox Code Playgroud)

例如:

>>> None or 'OK'
'OK'
Run Code Online (Sandbox Code Playgroud)