在双重条件下应用AND运算符

时间:2017-04-18 18:10:42

标签: python

我试图应用AND运算符来观察python中的双重条件,但它似乎没有按预期工作。这是一个例子;

ylist=[(u'it', u'is'), (u'speak', u'of'), (u'of', u'school')]
slist=['it', 'is', 'of', 'not']

[x for x in ylist if (x[0] and x[1]) not in slist]

output:[(u'of', u'school')]

Expected output:[(u'speak', u'of'),(u'of', u'school')]

感谢您的建议。

1 个答案:

答案 0 :(得分:1)

您需要使用any来减少元组中每个项目的不包含测试:

>>> ylist=[(u'it', u'is'), (u'speak', u'of'), (u'of', u'school')]
>>> slist=['it', 'is', 'of', 'not']
>>> [x for x in ylist if any(e not in slist for e in x)]
[(u'speak', u'of'), (u'of', u'school')]