Python 在集合中仅查找超弦

Python 在集合中仅查找超弦,python,numpy,Python,Numpy,当我试图帮助回答这个问题时,我发现numpy将是python循环的一个很好的替代品,尽管我似乎不知道如何去做,而且它现在已经成为一个我想弄清楚但无法解决的智力难题。我不想问同样的问题,但我确实认为numpy在这里可能更好 当前的问题是: 给出了一个庞大的字符串列表 data = ['test', 'foo','testing','foobar', 'bar', 'pie', 'applepie', ...] 返回一个列表,其中仅包含给定列表中字符串的子字符串: ['testing', 'foo

当我试图帮助回答这个问题时,我发现numpy将是python循环的一个很好的替代品,尽管我似乎不知道如何去做,而且它现在已经成为一个我想弄清楚但无法解决的智力难题。我不想问同样的问题,但我确实认为numpy在这里可能更好

当前的问题是:

给出了一个庞大的字符串列表

data = ['test', 'foo','testing','foobar', 'bar', 'pie', 'applepie', ...]
返回一个列表,其中仅包含给定列表中字符串的子字符串:

['testing', 'foobar', 'applepie']
我尝试了以下几点:在其他几次失败的尝试之后,但这对我来说似乎是最有意义的


显然,这会返回一个空数组,但我似乎无法找到正确的过滤器。我见过其他类似的问题/答案,但令我沮丧的是,没有答案使用numpy。

我不认为numpy是一个好方法,为什么不使用如下列表:

print([i for i in data if any([x in i and x!=i for x in data])])
输出:

['testing', 'foobar', 'applepie']
我认为这已经很好了,你回答对了,但你也可以写一个循环:

l = []
for i in data:
    if any([x in i and x!=i for x in data]):
        l.append(i)
print(l)

我不认为numpy是一个很好的方法,为什么不列一个清单,比如:

print([i for i in data if any([x in i and x!=i for x in data])])
输出:

['testing', 'foobar', 'applepie']
我认为这已经很好了,你回答对了,但你也可以写一个循环:

l = []
for i in data:
    if any([x in i and x!=i for x in data]):
        l.append(i)
print(l)

这是我对他的问题的回答,只是用不同的名字。你睡过吗?每次我在你身上,你也是!哈哈\这是我对他的问题的回答,只是用不同的名字。你睡过吗?每次我在你身上,你也是!哈哈\