我想測試列表中是否有兩個(gè)或多個(gè)值具有成員資格,但是我得到了意外的結(jié)果:>>> 'a','b' in ['b', 'a', 'foo', 'bar']('a', True)那么,Python可以一次在列表中測試多個(gè)值的成員資格嗎?結(jié)果是什么意思?
3 回答

隔江千里
TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊
我敢肯定,in
它具有更高的優(yōu)先級,,
因此您的語句被解釋為'a', ('b' in ['b' ...])
,然后'a', True
由于該'b'
值在數(shù)組中而被求值。
請參閱先前的答案以了解如何做您想做的事情。

BIG陽
TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
Python解析器將該語句評估為元組,其中第一個(gè)值為'a',第二個(gè)值為表達(dá)式'b' in ['b', 'a', 'foo', 'bar'](其值為True)。
您可以編寫一個(gè)簡單的函數(shù)來執(zhí)行您想要的操作,但是:
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
添加回答
舉報(bào)
0/150
提交
取消