gpt4 book ai didi

python - 仅查找集合中的超字符串

转载 作者:太空宇宙 更新时间:2023-11-03 21:12:32 25 4
gpt4 key购买 nike

试图帮助回答 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。

最佳答案

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

关于python - 仅查找集合中的超字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54965304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com