Possible Duplicate:
Python Check if all of the following items is in a list
所以我想测试word和word1是否都在列表lst中。 当然,我可以写:
if word in lst and word1 in lst:
do x
但我想知道我是否可以把这句话缩短为:
if (word and word1) in lst:
do x
当然,这是行不通的,但有没有什么有效的相似之处呢?
我尝试了下面的方法,但正如你所见,它并没有产生预期的结果。
>>> word in lst
True
>>> word1 in lst
True
>>> (word, word1) in lst
False
编辑:谢谢您的回答,我想我现在已经很清楚该怎么做了。
答案是正确的(至少有一个是正确的)。然而,如果您正在执行包含检查,而不关心顺序,就像您的示例可能建议的那样,真正的答案是您应该使用集合,并检查子集。
你可以这样做:
列出你的单词和一个生成器表达式,检查它们是否在列表中:
all
检查iterable中的所有值是否为true。因为我们使用的是发电机,所以这仍然是短路优化的。当然,如果单词列表对于一行来说不是太大,您可以将其内联:相关问题 更多 >
编程相关推荐