Python 中检查多个变量是否不是 None
Python 中检查多个变量是否不是 None:
- 将变量包装在列表中。
- 使用生成器表达式迭代列表。
- 在每次迭代中,检查当前列表项是否不是 None。
-
将生成器对象传递给
all()
函数。
a = 'a'
b = 'b'
c = 'c'
if all(item is not None for item in [a, b, c]):
print('Multiple variables are NOT None')
else:
print('At least one of the variables stores a None value')
我们使用方括号将变量添加到列表中,并使用生成器表达式迭代列表。
生成器表达式用于对每个元素执行一些操作,或者选择满足条件的元素子集。
在每次迭代中,我们检查当前列表项是否不是 None 并返回结果。
最后一步是将生成器对象传递给 all()
函数。
all()
内置函数接受一个可迭代对象作为参数,如果该可迭代对象的所有元素都为真(或者该可迭代对象为空),则返回 True。
如果所有变量都不为 None,则
all()
函数将返回 True,否则返回 False。
另一种方法是使用 in
运算符。
检查多个变量是否不是 None:
- 将变量包装在一个序列中(例如元组或列表)。
-
使用
not in
运算符检查 None 是否不是序列的成员。 - 如果序列不包含 None,则变量不是 None。
a = 'a'
b = 'b'
c = 'c'
if None not in (a, b, c):
# 👇️ this runs
print('Multiple variables are NOT None')
这种方法看起来比前一种方法简单得多。 但是 ,
in
和not in
运算符检查是否相等,例如None != a
,None != a
,等等。
这在 Python 中不是一个好的做法,因为建议使用 is
关键字检查 None 。
在一些非常罕见的情况下,使用等于和不等于来检查 None 可能会导致混淆行为,因此 PEP8 样式指南建议在测试 None 时使用 is 和 is not。
in
运算符测试成员资格。 例如,如果 x 是 l 的成员,则 x in l 的计算结果为 True,否则计算结果为 False。
x not in l
返回 x in l
的否定。
另一种方法是多次使用 and
运算符。
a = 'a'
b = 'b'
c = 'c'
if a is not None and b is not None and c is not None:
print('Multiple variables are NOT None')
通常不推荐这样做,因为它非常重复且难以阅读。
if
语句首先检查 a 变量是否不为 None。 如果是,则 if
语句短路返回 False,而不检查以下任何条件。
如果表达式 x 和 y 为假,则返回左边的值,否则返回右边的值。
result = False and 'hello'
print(result) # 👉️ False
所有不真实的值都被认为是虚假的。 Python 中的虚假值是:
- 定义为 falsy 的常量:None 和 False。
- 任何数字类型的 0(零)
-
空序列和集合:""(空字符串)、
()
(空元组)、[]
(空列表)、{}
(空字典)、set()
(空集)、range(0)
(空范围)。
因此,如果左侧的值是上述任何虚假值,则返回左侧的值。
最好使用
all()
函数来检查多个变量是否不为 None,因为这种方法没有任何边缘情况并且可读性很强。
a = 'a'
b = 'b'
c = 'c'
if all(item is not None for item in [a, b, c]):
print('Multiple variables are NOT None')
else:
print('At least one of the variables stores a None value')
相关文章
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串
在 Python Pandas 中使用 str.split 将字符串拆分为两个列表列
发布时间:2024/04/24 浏览次数:1124 分类:Python
-
本教程介绍如何使用 pandas str.split() 函数将字符串拆分为两个列表列。
在 Pandas 中将 Timedelta 转换为 Int
发布时间:2024/04/23 浏览次数:231 分类:Python
-
可以使用 Pandas 中的 dt 属性将 timedelta 转换为整数。
Python 中的 Pandas 插入方法
发布时间:2024/04/23 浏览次数:112 分类:Python
-
本教程介绍了如何在 Pandas DataFrame 中使用 insert 方法在 DataFrame 中插入一列。
使用 Python 将 Pandas DataFrame 保存为 HTML
发布时间:2024/04/21 浏览次数:106 分类:Python
-
本教程演示如何将 Pandas DataFrame 转换为 Python 中的 HTML 表格。
如何将 Python 字典转换为 Pandas DataFrame
发布时间:2024/04/20 浏览次数:73 分类:Python
-
本教程演示如何将 python 字典转换为 Pandas DataFrame,例如使用 Pandas DataFrame 构造函数或 from_dict 方法。
如何在 Pandas 中将 DataFrame 列转换为日期时间
发布时间:2024/04/20 浏览次数:101 分类:Python
-
本文介绍如何将 Pandas DataFrame 列转换为 Python 日期时间。