子串出现

时间:2013-09-11 23:43:04

标签: python substring

我在这里有一个问题,我真的不知道从哪里开始

s1.find(s2)

任何帮助都将不胜感激。

变量s1和s2指的是strs。表达式s1.find(s2)返回s1中第一次出现s2的索引。表达式s1.find(s2,5)返回s1中第一次出现s2的索引,从s1中的索引5开始。 (有关详细信息,请参阅help(str.find))

编写一个表达式,在s1中生成第二次出现s2的索引。如果s2在s1中没有出现两次,则表达式应该生成-1。与str.count不同,您应该允许重叠出现s2。

例如,如果s1为“banana”且s2为“ana”,则表达式应返回3.如果s1为“apple”且s2为“p”,则表达式应返回2.

您的答案必须是不使用方括号(字符串索引和切片)的单个表达式,并且您只能调用方法str.find并使用算术运算符(+, - 等)。

2 个答案:

答案 0 :(得分:5)

这打印3。

s1 = 'banana'
s2 = 'ana'
second_index = s1.find(s2, s1.find(s2)+1)
print(second_index)

这会打印-1。

s1 = 'bana'
s2 = 'ana'
second_index = s1.find(s2, s1.find(s2)+1)
print(second_index)

因此,您可能正在寻找的表达式为s1.find(s2, s1.find(s2)+1)

答案 1 :(得分:1)

请阅读文档以获取线索:

http://docs.python.org/2/library/string.html