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

2024-04-25 23:47:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道该怎么解释。例如,我有以下代码:

if 'foo' and 'bar' in 'foobar':
    print('foobar')

我想用一些关键字来检查刺,我的问题是,现在我试着把这些关键字放在这样一个列表中:

keywords = ['foo', 'bar']

但我现在怎么用呢?如果我使用for像这样提取它们:

for i in keywords:
    if i in 'foobar':
        print('foobar')

但这会打印foobar两次


Tags: and代码in列表foriffoobar
2条回答

您可以使用生成器表达式来循环所有关键字,并检查它们是否都包含在'foobar'中。使用all也将允许它在找到第一个False时短路

if all(i in 'foobar' for i in keywords):
    print('foobar')

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

if any(i in 'foobar' for i in keywords):
    print('foobar')

如果您想继续使用循环,可以使用for-else

for i in keywords:
    if i not in 'foobar':
        break
else:
    print('foobar')

如果任何i不在'foobar',循环将退出并跳过else部分。只有当循环退出而没有break时才进入elseif for-else,在这种情况下,只有当每个i都在'foobar'中时才会发生这种情况

相关问题 更多 >

    热门问题