基本上,我有一个正在搜索字符串的子字符串列表。我当前正在使用 any() ,如果在字符串中找到某个单词,我就会做一些工作。我想开始记录比赛以保留一些比赛统计数据。我现在正在使用any()。
有没有办法做同样的事情,但将匹配存储在变量中?我每 10 秒获取并搜索最多 100 个字符串,以获取包含 25-30 个子字符串的列表。我唯一能想到的是遍历列表中每个字符串的每个子字符串,但我不确定这种方法对性能的影响。
最佳答案
让我们看一下这个例子:
s = "Thisisarandomstringthatiwanttotype"
subst = ["This", "random", "hullo", "type"]
返回所有匹配的子字符串:
filter(lambda x: x in s, subs)
>> ['This', 'random', 'type']
要返回匹配子字符串的起始索引,您可以将从上面代码段返回的字符串列表传递给映射函数以查找它们的索引:
map(lambda x: s.index(x), filter(lambda x: x in s, subs))
>> [0, 7, 30]
类似地,您可以使用过滤器上的 map 检查返回字符串的长度:
map(lambda x: len(x), filter(lambda x: x in s, subs))
>> [4, 6, 4]
或者求返回的最长子串的长度:
max(filter(lambda x: x in s, subst), key=len)
>> 'random'
关于Python:从列表中查找字符串中的子字符串,但保存子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37912795/