我试图应用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')]
感谢您的建议。
答案 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')]