📅  最后修改于: 2023-12-03 15:19:06.708000             🧑  作者: Mango
在 Python 中,我们可以使用 !=
运算符来判断两个值是否不相等。但是,如果我们想要判断一个变量与多个值之一是否不相等,应该如何处理呢?
一个通用的解决方案是使用 not in
运算符。例如,如果我们想要判断一个变量 x
是否不等于 1、2、3 中的任意一个,可以这样写:
if x not in [1, 2, 3]:
# do something
注意这里使用了列表来表示多个值,如果有很多值需要判断,可以考虑使用集合来提高效率:
if x not in {1, 2, 3, ..., 100}:
# do something
Python 还提供了一个 any()
函数,可以判断一个变量是否与多个值中的任意一个相等。如果我们需要判断一个变量是否不等于多个值中的任意一个,可以这样写:
if not any([x == v for v in [1, 2, 3]]):
# do something
这里使用了列表推导式来构建一个包含多个比较表达式的列表,any()
函数判断其中是否有任意一个为真,再取反得到最终的判断结果。
如果我们需要经常判断多个值是否在某个范围内,可以考虑使用面向对象的方式来封装这个功能。例如,我们可以定义一个 ValueRange
类来表示一个值范围,然后在该类中实现 __contains__()
方法来判断一个值是否在该范围内:
class ValueRange:
def __init__(self, *values):
self._values = set(values)
def __contains__(self, value):
return value not in self._values
使用这个类时,只需要创建一个 ValueRange
对象,并将需要判断的值作为参数传入即可:
range1 = ValueRange(1, 2, 3)
range2 = ValueRange(10, 20, 30)
if x in range1:
# do something
if x in range2:
# do something
Python 不等于多个值可以使用 not in
运算符、any()
函数以及面向对象的方式来实现。具体使用哪种方式,应该根据实际情况进行选择。