在 Python 中返回第一个列表项或 None
Python 中要返回第一个列表项或None:
- 检查列表是否为空。
- 如果满足条件,则返回第一个列表项。
- 否则,返回 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
如果列表不为空,我们返回第一个列表项。
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() 函数以获取第一个列表项。
- 在对 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()
函数从迭代器返回下一项。
该函数可以传递一个默认值作为第二个参数。
如果迭代器耗尽或为空,则返回默认值。
如果迭代器已用尽或为空且未提供默认值,则会引发
StopIteration
异常。
我们使用 or
布尔运算符来涵盖变量存储 None 值的场景。
表达式 x 或 y 如果为真则返回左边的值,否则返回右边的值。
如果列表不为空,则 next()
函数返回第一个列表项。
如果列表为空,则 next()
函数返回 None。
选择哪种方法是个人喜好问题。 我会使用内联 if/else
语句,因为我发现它更直观且更易于阅读。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。