我有两张清单。 另一个是术语列表。叫它B。
我需要从字符串列表中提取至少包含术语列表中包含的术语的元素。
嵌套for循环显然是一种可能性:
for a in A: for b in B: if b in a: print (a)
这是O(n^2),这不是一个好方法,因为a非常长(10亿个字符串!)。
我认为的另一个解决方案是:
我还没有计时,但应该会稍微好一点。
任何关于替代方法的提示都是非常受欢迎的!
仅使用集合:
from itertools import chain set_a = set(a) terms = set(chain.from_iterable(b)) has_terms = set_a & terms