我有一句话-
Sammy likes to swim in the ocean, likes to spin servers, and likes to smile.我想找到单词likes第二次出现的起始索引号。
但我不想使用起始索引号或范围作为str.find()函数的参数。
如果可能的话,我希望避免正则表达式,因为对于初学者来说很难理解。
注意:使用str.find()函数并不是强制性的。我只想知道,如果不给开始索引或范围作为参数,这是否可能。
发布于 2018-01-03 13:10:44
法向循环法:
string = "Sammy likes to swim in the ocean, likes to spin servers, and likes to smile."
word = "likes"
indexes = []
for i in range(len(string)):
if string[i:i+len(word)] == word:
indexes.append(i)
print(indexes[1]) # Second location, outputs: 34列表理解:
[i for i in range(len(string)) if string[i:i+len(word)] == word][1] # Outputs: 34发布于 2018-01-03 13:01:10
发布于 2018-01-03 13:04:21
使用regex怎么样?
import re
string = 'Sammy likes to swim in the ocean, likes to spin servers, and likes to smile.'
pattern = 'likes'
likes = [(m.start(0), m.end(0)) for m in re.finditer(pattern, string)]
# [(6, 11), (34, 39), (61, 66)]likes1有你想要的
https://stackoverflow.com/questions/48077849
复制相似问题