gpt4 book ai didi

python - 从列表中获取第一个非 None 值

转载 作者:IT老高 更新时间:2023-10-28 20:39:00 25 4
gpt4 key购买 nike

给定一个列表,有没有办法获得第一个非无值?如果是这样,pythonic 的方法是什么?

例如,我有:

  • a = objA.addresses.country.code
  • b = objB.country.code
  • c = 无
  • d = 'CA'

在这种情况下,如果 a 是 None,那么我想得到 b。如果 a 和 b 都为 None,我想得到 d。

目前我正在按照 (((a or b) or c) or d) 的方式做一些事情,还有其他方法吗?

最佳答案

您可以使用 next() :

>>> a = [None, None, None, 1, 2, 3, 4, 5]
>>> next(item for item in a if item is not None)
1

如果列表只包含 Nones,它将抛出 StopIteration 异常。如果您想在这种情况下使用默认值,请执行以下操作:

>>> a = [None, None, None]
>>> next((item for item in a if item is not None), 'All are Nones')
All are Nones

关于python - 从列表中获取第一个非 None 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18533620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com