我有一个名为 strList
的字符串列表,其中包含大约 800,000-2,200,000
元素。每个元素包含大约 100
个字符。我有另一个名为 findStrs
的字符串列表,它通常包含少于 5
元素(5 到 10 个字符的字符串)。我想选择包含 findStrs
中所有元素的 strList
元素。我怎样才能在Python中有效地做到这一点?这是我的做法,但我想知道是否有更有效的解决方案使用列表理解来做到这一点:
finalStrList = []
for strr in strList:
temp = []
for findStr in findStrs:
if findStr in strr:
temp.append(findStr)
if len(temp) == len(findStrs):
finalStrList.append(str)
print(finalStrList)
我也尝试设计一种基于列表理解的方法,但毫不奇怪,它不起作用:
[strr for strr in strList if [findStr in strr for findStr in findStrs]]
最佳答案
如juanpa.arrivillaga在评论部分中建议我可以使用以下基于列表理解的解决方案轻松完成我想做的事情:
[s for s in strList if all([x in s for x in findStrs])]
关于python - 检查列表的元素是否包含另一个列表的所有元素的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49502908/