python - 仅在集合中查找超弦
问题描述
在试图帮助回答这个问题时,我认为 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 - 无法从python中的外部位置读取文件
- c# - 如何检查两个 Span
相交? - php - 查询 mariadb 数据库在 phpmyadmin 中有效,但在 php 中无效
- amazon-web-services - Cognito 错误消息是否支持非英语语言?
- laravel - 在 laravel 通知上调用 null 上的成员函数 delay()
- c# - .Net 和 SQL - 具有长时间运行进程的事务
- javascript - How can i excute script New page in chrome extension?
- pandas - 索引值与航班(数据范围 A 行和 E 行)
- java - 在流中使用 Java 8 Supplier 实现惰性求值
- segmentation-fault - PThread 分段错误,增量器/减量器