我正在使用if条件检查列表中的两个值,而下面的python中的另一个字符串不应该在列表中是我的代码但是它输出错误
lis = ['a','b','c','d','e','f'] #list values or lis =[]
if ('z' or 'a') and not 'x' in lis :
print "yes"
else :
print "no"
,输出
yes
有什么不对吗?
答案 0 :(得分:1)
在您的代码中,if
语句的评估方式如下:
('z' or 'a')
- > 'z'
( truthy )not 'x' in lis
- > True
因此,它变为if 'z' and True
,即True
。
请改用此代码:
lis = ['a', 'b', 'c', 'd', 'e', 'f']
if any(item in lis for item in ('z', 'a')) and 'x' not in lis:
print 'yes'
else:
print 'no'
这将检查元组('z', 'a')
中的任何项目是否在列表中,以及'x'
是否不在。
答案 1 :(得分:1)
('z' or 'a')
评估为真值('z'
),因此您获得yes
作为输出。
lis = ['a','b','c','d','e','f'] #list values or lis =[]
if 'z' in lis or 'a' in lis and not 'x' in lis :
print "yes"
else :
print "no"
答案 2 :(得分:-1)
在第一个条件中,您正在制作一个被认为是真的通用语句。如果您想查看z
或a
是否在lis
中,它应如下所示:
lis = ['a','b','c','d','e','f'] #list values
if ('z' or 'a') in lis and not 'x' in lis :
print "yes"
else :
print "no"