嗯,我不知道如何解释这个。例如,我有以下代码:
if 'foo' and 'bar' in 'foobar':
print('foobar')
我想使用一些关键字检查刺痛,我的问题是,现在我正试图将这些关键字放在这样的列表中:
keywords = ['foo', 'bar']
但我现在该如何使用它们?如果我使用for
像这样提取它们:
for i in keywords:
if i in 'foobar':
print('foobar')
但这会打印foobar
两次。
答案 0 :(得分:9)
您可以使用生成器表达式遍历所有关键字,并检查它们是否全部包含在'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')
答案 1 :(得分:3)
如果您想坚持使用循环,可以使用for-else
。
for i in keywords:
if i not in 'foobar':
break
else:
print('foobar')
如果i
中没有任何'foobar'
,则循环将退出并跳过else
部分。 else
如果仅在没有for-else
的情况下退出循环,则仅输入break
,在这种情况下,只有i
位于'foobar'
时才会出现flex-grow
。