是否有自动查找字符串的第一个和最后一个索引的函数?我想在没有压缩两个索引的情况下做一次这个发现。
下面的代码找到了单词' best'的第一个和最后一个索引。但是,在字符串' txt'中,它会单独执行。
>>> _txt='my best friend'
>>> _str='best'
>>> _txt.find(_str) # first index
3
>>> _txt.find(_str[-1]) # last index
6
#Attempt on joining
1) >>>_txt.find(_str),(_str[-1])
(3, 't')
尝试的输出是错误的。
理想输出:
(3,6)
有什么建议吗?
答案 0 :(得分:2)
如果只有一个匹配,那么你可以这样做:
start = _txt.find(_str)
end = start + len(_str) - 1
或者,如果有多个匹配项,那么您可以使用re.finditer
:
matches = [(m.start(0), m.end(0) - 1) for m in re.finditer(_str, _txt)]
答案 1 :(得分:0)
试试这个:
_str ='My best friend.'
getIndexes = lambda x: (_str.find(x[:-len(x)+1]),_str.find(x[len(x)-1:]))
print getIndexes('best')
除了使用lambda函数并在本地检索子字符串的索引之外,你不能“更快”。