在 Python 中返回第一个列表项或 None
Return the first list item or None in Python
要返回第一个列表项或无:
- 检查列表是否不为空。
- 如果满足条件,则返回第一个列表项。
- 否则,返回
None
。
主程序
my_list = ['bobby', 'hadz', 'com'] first_or_none = my_list[0] if my_list else None print(first_or_none) # 👉️ bobby my_list = [] first_or_none = my_list[0] if my_list else None print(first_or_none) # 👉️ None
if/else
我们使用了三元运算符,它与语句非常相似。
if
条件检查列表是否真实。
空序列是虚假值,因此如果变量存储空列表或值,则不满足条件None
。
主程序
my_list = ['bobby', 'hadz', 'com'] print(bool(my_list)) # 👉️ True my_list = [] print(bool(my_list)) # 👉️ False
如果列表不为空,我们返回第一个列表项。
Python 索引是从零开始的,因此列表中的第一项的索引为,最后一项的索引为或。
0
-1
len(my_list) - 1
如果列表为空或变量存储的是假值,则else
语句运行并返回None
。
主程序
my_list = [] first_or_none = my_list[0] if my_list else None print(first_or_none) # 👉️ None
或者,您可以使用该next()
功能。
使用 next() 返回第一个列表项或 None
要返回第一个列表项或None
:
- 将列表传递给
iter()
函数以创建迭代器。 - 将结果传递给
next()
函数以获取第一个列表项。 None
在函数调用中提供回退值next()
。
主程序
my_list = ['bobby', 'hadz', 'com'] first_or_none = next(iter(my_list or []), None) print(first_or_none) # 👉️ 'bobby' my_list = [] first_or_none = next(iter(my_list or []), None) print(first_or_none) # 👉️ None
我们使用该iter()
函数创建了一个迭代器对象,因此我们可以调用该
next()
函数。
next()函数返回迭代器的下一个项目。
该函数可以传递一个默认值作为第二个参数。
如果迭代器耗尽或为空,则返回默认值。
如果迭代器耗尽或为空且未提供默认值,
StopIteration
则会引发异常。
我们使用or
布尔运算符来涵盖变量存储值的场景None
。
如果表达式x or y
为真,则返回左边的值,否则返回右边的值。
如果列表不为空,next()
函数返回第一个列表项。
如果列表为空,则next()
函数返回None
。
您选择哪种方法是个人喜好的问题。我会选择使用内联if/else
语句,因为我发现它更直观且更易于阅读。