从列表中提取关键字然后使用`和`

Kev*_*uan 1 python

好吧,我不知道如何解释这个.例如,我有以下代码:

if 'foo' and 'bar' in 'foobar':
    print('foobar')
Run Code Online (Sandbox Code Playgroud)

我想使用一些关键字检查刺痛,我的问题是,现在我试图将这些关键字放在这样的列表中:

keywords = ['foo', 'bar']
Run Code Online (Sandbox Code Playgroud)

但是我现在怎么用呢?如果我用它for来提取它们:

for i in keywords:
    if i in 'foobar':
        print('foobar')
Run Code Online (Sandbox Code Playgroud)

但这将打印foobar两次.

Cor*_*mer 9

您可以使用生成器表达式遍历所有关键字并检查它们是否全部包含在中'foobar'.使用all也将允许它在找到第一个时短路False.

if all(i in 'foobar' for i in keywords):
    print('foobar')
Run Code Online (Sandbox Code Playgroud)

与此类似的是,如果您想要print找到任何关键字,您可以使用

if any(i in 'foobar' for i in keywords):
    print('foobar')
Run Code Online (Sandbox Code Playgroud)