我有一个清单:
alist=[['able'], ['acre'], ['bale'], ['beyond'], ['binary'], ['boat'], ['brainy'], ['care'], ['cat'], ['cater'], ['crate'], ['lawn'], ['list'], ['race'], ['react'], ['sheet'], ['silt'], ['slit'], ['trace'], ['interject'], ['contradict'], ['oration'], ['understandable']]
和另一个清单:
blist=['co', 'de', 'dis', 'inter', 'non', 'not', 'post', 'pre', 're', 'sub', 'trans']
现在我的问题是,我想检查 B列表的内容是否与列表中的任何内容匹配,换句话说,如果列表在 B列表
中列出了任何前缀最后,它应该给我一个像" co"出现在A列表中," inter"出现在A列表等中。
编辑,这是我尝试但没有工作的代码,有人可以告诉我它有什么问题吗?
for word in alist:
if blist in word:
print word
答案 0 :(得分:1)
似乎没有理由将字符串放在嵌套列表中。所以这就是我要做的事情:
import collections
import itertools
alist = [s for sub in alist for s in sub]
counts = collections.defaultdict(int)
for s, a in itertools.product(blist, alist):
if a.startswith(s):
counts[s] += 1