<p>我有一个名为<code>strList</code>的字符串列表,其中包含大约<code>800,000-2,200,000</code>元素。{cd3>每个元素包含<cd3}。我有另一个名为<code>findStrs</code>的字符串列表,它通常包含少于<code>5</code>元素(5到10个字符串)。我想选择<code>strList</code>中包含<code>findStrs</code>中所有元素的元素。如何在Python中有效地实现这一点?我是这样做的,但我想知道是否有更有效的解决方案使用列表理解来完成:</p>
<pre><code>finalStrList = []
for strr in strList:
temp = []
for findStr in findStrs:
if findStr in strr:
temp.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(findStr)
if len(temp) == len(findStrs):
finalStrList.append(str)
print(finalStrList)
</code></pre>
<p>我也曾试图设计一种基于列表理解的方法,但并不奇怪,它并不奏效:</p>
^{pr2}$
<p>正如<a href="https://stackoverflow.com/users/5014455/juanpa-arrivillaga">juanpa.arrivillaga</a>在评论部分中建议的那样,我可以使用以下基于列表理解的解决方案轻松地执行我想要的操作:</p>
<pre><code>[s for s in strList if all([x in s for x in findStrs])]
</code></pre>