擅长:python、mysql、java
<p>您可以使用<a href="https://docs.python.org/3/tutorial/datastructures.html" rel="nofollow noreferrer">list comprehension</a>、<code>any</code>和<code>all</code>执行单个命令</p>
<pre class="lang-py prettyprint-override"><code>list1 = ['tomato', 'onions','egg']
list2 = ['Two tomatos', 'two onions','two eggs','salsa']
result = all([any([keyword in string for string in list2]) for keyword in list1])
</code></pre>
<p>第一个列表理解<code>[keyword in string for string in list2]</code>检查关键字是否至少存在于<code>list2</code>的所有字符串中,并生成布尔值列表。我们使用any来确定是否有任何结果是<code>True</code></p>
<p>第二个列表理解构建在第一个列表理解<code>[any([keyword in string for string in list2]) for keyword in list1]</code>的基础上,并检查所有关键字在<code>list2</code>的所有字符串中是否最少出现。我们使用<code>all</code>检查所有结果是否都是<code>True</code></p>
<p>正如@Selcuk所提到的,您可以使用<a href="https://www.python.org/dev/peps/pep-0289" rel="nofollow noreferrer">generator expressions</a>更有效地执行此操作:语法非常接近列表理解:</p>
<pre class="lang-py prettyprint-override"><code>result = all(any(keyword in string for string in list2) for keyword in list1)
</code></pre>