我想测试列表中是否有两个或多个值具有成员资格,但是我得到了意外的结果:>>> 'a','b' in ['b', 'a', 'foo', 'bar']('a', True)那么,Python可以一次在列表中测试多个值的成员资格吗?结果是什么意思?
3 回答

隔江千里
TA贡献1906条经验 获得超10个赞
我敢肯定,in
它具有更高的优先级,,
因此您的语句被解释为'a', ('b' in ['b' ...])
,然后'a', True
由于该'b'
值在数组中而被求值。
请参阅先前的答案以了解如何做您想做的事情。

BIG阳
TA贡献1859条经验 获得超6个赞
Python解析器将该语句评估为元组,其中第一个值为'a',第二个值为表达式'b' in ['b', 'a', 'foo', 'bar'](其值为True)。
您可以编写一个简单的函数来执行您想要的操作,但是:
def all_in(candidates, sequence):
for element in candidates:
if element not in sequence:
return False
return True
并这样称呼:
>>> all_in(('a', 'b'), ['b', 'a', 'foo', 'bar'])
True
添加回答
举报
0/150
提交
取消