仅在集合中查找超弦

2024-05-16 16:36:53 发布

您现在位置:Python中文网/ 问答频道 /正文

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

当前的问题是:

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

data = ['test', 'foo','testing','foobar', 'bar', 'pie', 'applepie', ...]

返回一个只包含给定列表中字符串的子字符串的列表:

['testing', 'foobar', 'applepie']

我尝试了以下方法:在其他几次失败的尝试之后,但这对我来说似乎是最有意义的

import numpy as np

data = ['test', 'foo','testing','foobar', 'bar', 'pie', 'applepie']

d = np.unique(np.array(data))
print(d[((d in d) & (not d == d))])

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


Tags: 字符串答案testnumpy替代品列表datafoo
1条回答
网友
1楼 · 发布于 2024-05-16 16:36:53

我不认为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)

相关问题 更多 >