我发现了一个类似的问题here,但答案似乎并不适用于我的问题。
这是我的代码:
y = 3
list1 = [1,2,3,4,5]
if y != 0 or y != list1:
print("y is not in range")
else:
print(y)
继续打印y is not in range
。
如果y
不等于任何项目,我的目标是检查0
不是否等于y
或在列表中。
我了解上述or
应该是and
,我特别感兴趣的是如何检查列表中包含y
的情况。
答案 0 :(得分:10)
您想要检查y
是否与0
AND 不在列表中:
if y != 0 and y not in list1:
使用or
表示条件的一个就足够了,因此,y != 0
它会返回True
而不会转到y != list1
返回False
,因为int
不是list
,在这种情况下您必须使用in
。
如果你真的想使用or
,那么你想要的是什么:
if not (y == 0 or y in list1):
print('y not in range')
else:
print(y)
记得De Morgan法律:
not (y == 0 or y in list1) == (not y == 0) and (not y in list1) == y != 0 and y not in list1
答案 1 :(得分:1)
关于标题中提到的问题,您可以编写类似
的内容true if condition else false for y in list1
检查condition
列表y
中的每个元素list1
。
HERE一个有用的链接。
否则@Bakuriu的回答是正确的。