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

标签 python

像这样:
如果列表是 ['', 'a', 'b'] 返回 'a'
如果列表是 ['', '', ''] 返回 ''
如果列表是 ['a', 'b', 'c'] 返回 a
python 中有什么方法可以做到这一点吗?
我的意思是不需要我自己写函数
我想要一个像 var a = b || 这样的内置方法cjavascript

最佳答案

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

>>> next(x for x in ['a', 'b', 'c'] if x)
'a'
>>> next(x for x in ['', 'b', 'c'] if x)
'b'

但是 - all False 引发异常而不是 ''

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

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

>>> next((x for x in ['', '', ''] if x), '')
''

关于python如何在列表中返回第一个值= true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34349430/

相关文章:

python - 如何在python的dict继承中使用items()和values()强制调用__getitem__

python - Python标准库真的是标准的吗?

python - 如何漂亮地打印 SqlAlChemy 的输出?

python - 如何使用 Python 通过 Unix pass 命令行程序自动设置密码

python - Django 获取 ImageField 路径

python - 值错误: Number of labels=25 does not match number of samples=56

Python编码转换

python - 如何给 matplotlib slider 贴上标签?

python - 使用递归选择偶数

子文件夹中的 Python 随机行