如何使用循环找到索引方法。不使用内置方法

2024-04-25 14:26:16 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用循环实现索引方法

sub_strmy_str中找到,然后它将打印匹配字符串的第一个字符在my_str中第一次出现的索引

输入:

my_str = 'Peter Piper Picked A Peck Of Pickled Peppers.',
sub_str = 'Pickl'

输出

29

代码如下

main="Peter Piper Picked A Peck Of Pickled Peppers"
sub="Pickl"
t = main.split()
for i in range (0,len(t)):
    match = True
    if sub in t[i]:
        print(i)

我的输出是6

预期输出为29


Tags: of方法字符串inmainmy字符peter
3条回答

我想您需要输入字符串中子字符串的开始索引(应该是29)。splt()方法默认在有空格的地方拆分字符串;转换成单词,而不是单个字母。这就是为什么输出为6

可以使用find()方法找到子字符串的开始索引:

output = main.find(sub)

应该使用两个嵌套循环

def myindex(main,sub):
    for kk in range (len(main) - len(sub)):
        match = True
        for ii in range(len(sub)):
            if main[kk+ii] != sub[ii]:
                match = False
                break
        if match:
            return kk
    return -1

>>> myindex("Peter Piper Picked A Peck Of Pickled Peppers","Pickl")
29

6是将数组拆分为词块后,与数组中的子字符串匹配的元素的索引。如果要查找子字符串的索引,可以在本例中使用find()方法,它将是:

main="Peter Piper Picked A Peck Of Pickled Peppers"
sub="Pickl"
t = main.find(sub)
print(t)

这里t将是29

相关问题 更多 >

    热门问题