在另一个列表中查找列表的内容

时间:2015-10-19 14:54:23

标签: python list

我有一个清单:

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

1 个答案:

答案 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