python如何在列表中返回第一个value = true?

nat*_*ila 1 python

像这样:
如果列表['', 'a', 'b']返回'a'
如果列表['', '', '']返回,''
如果list ['a', 'b', 'c']返回a
是python中的任何方法来执行此操作?
我的意思是不需要我写自己的功能
我想有一个内置的方法类似var a = b || cjavascript

Joh*_*ooy 7

显而易见的方法是使用生成器表达式

>>> next(x for x in ['a', 'b', 'c'] if x)
'a'
>>> next(x for x in ['', 'b', 'c'] if x)
'b'
Run Code Online (Sandbox Code Playgroud)

但是 - 所有False都会引发异常,而不是 ''

>>> next(x for x in ['', '', ''] if x)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration
Run Code Online (Sandbox Code Playgroud)

你可以通过提供这样的默认值来解决next这个问题

>>> next((x for x in ['', '', ''] if x), '')
''
Run Code Online (Sandbox Code Playgroud)