给定一个列表,有没有办法获得第一个非 None 值?如果是这样,那么Python式的方法是什么?
例如,我有:
-
a = objA.addreses.country.code
b = objB.country.code
-
c = None
d = 'CA'
在这种情况下,如果a是None,那么我想要得到b。如果a和b都是None,那么我想要得到d。
目前我正在做一些事情(((a or b) or c) or d)
,还有别的办法吗?
您可以使用next() https://docs.python.org/2/library/functions.html#next:
>>> a = [None, None, None, 1, 2, 3, 4, 5]
>>> next(item for item in a if item is not None)
1
如果列表仅包含 None,则会抛出StopIteration
例外。如果您想在这种情况下使用默认值,请执行以下操作:
>>> a = [None, None, None]
>>> next((item for item in a if item is not None), 'All are Nones')
All are Nones
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)