Pythonic way to select first variable that evaluates to True

python

Solution

Did you mean returning first value for what `bool(value)==True`? Then you can just rely on the fact that boolean operators return last evaluated argument:

result = a or b or c or default

Problem

I have some variables and I want to select the first one that evaluates to True, or else return a default value. For instance I have `a`, `b`, and `c`. My existing code: ``` result = a if a else (b if b else (c if c else default)) ``` Another approach I was considering: ``` result = ([v for v in (a, b, c) if v] + [default])[0] ``` But they both feel messy, so is there a more Pythonic way?

Original source