在 Python 中返回第一个列表项或 None

Python 中要返回第一个列表项或None:

  1. 检查列表是否为空。
  2. 如果满足条件,则返回第一个列表项。
  3. 否则,返回 None。
my_list = ['www', 'zadmei', 'com']

first_or_none = my_list[0] if my_list else None
print(first_or_none)  # 👉️ www

my_list = []

first_or_none = my_list[0] if my_list else None
print(first_or_none)  # 👉️ None

我们使用了三元运算符,它与 if/else 语句非常相似。

if 条件检查列表是否真实。

空序列是假值,因此如果变量存储空列表或 None 值,则不满足条件。

my_list = ['www', 'zadmei', 'com']
print(bool(my_list))  # 👉️ True

my_list = []
print(bool(my_list))  # 👉️ False

如果列表不为空,我们返回第一个列表项。

如果列表为空或变量存储了虚假值,则运行 else 语句并返回 None。

my_list = []

first_or_none = my_list[0] if my_list else None
print(first_or_none)  # 👉️ None

或者,我们可以使用 next() 函数。

使用 next() 返回第一个列表项或 None

要返回第一个列表项或None:

  1. 将列表传递给 iter() 函数以创建迭代器。
  2. 将结果传递给 next() 函数以获取第一个列表项。
  3. 在对 next() 函数的调用中提供 None 的后备值。
my_list = ['www', 'zadmei', 'com']

first_or_none = next(iter(my_list or []), None)
print(first_or_none)  # 👉️ 'www'

my_list = []

first_or_none = next(iter(my_list or []), None)
print(first_or_none)  # 👉️ None

我们使用 iter() 函数创建了一个迭代器对象,因此我们可以调用 next() 函数。

next() 函数从迭代器返回下一项。

如果迭代器耗尽或为空,则返回默认值。

我们使用 or 布尔运算符来涵盖变量存储 None 值的场景。

如果列表不为空,则 next() 函数返回第一个列表项。

如果列表为空,则 next() 函数返回 None。

选择哪种方法是个人喜好问题。 我会使用内联 if/else 语句,因为我发现它更直观且更易于阅读。