使用字符串切片和索引python检查字符串(更短)内的字符串(更长)

时间:2016-10-12 12:02:10

标签: python

正如您所看到的,程序会询问用户两个字符串,它应首先询问较长的字符串,然后需要检查整个较长字符串以查找较短字符串的实例。如果我找到一个,打印出匹配开始的索引。并且程序执行此操作直到它检查整个较长的字符串。我是python的新手,我遇到了困难,如果有任何建议请把它放在新手级别,所以我理解,不要跳进任何先进的技术。该程序也应该是上限敏感的。 我试图通过使用切片,索引和使用循环来找到较短的纵梁并将其索引多次(见投影输出)。

def main():
    longer = [input("First (longer) string: ")]
    shorter = input("Second (shorter) string: ")
    for shorter in longer:
        print("at index ","found a slice of ", shorter)

main

我的预计输出应该是这样的:

longer: she sells seashells by the seashore.
shorter: sea

at index 10 found a slice of sea
at index 27 found a slice of sea

2 个答案:

答案 0 :(得分:0)

好吧,为了在较长的时间内首次出现较短的字符串,您可以使用:

longer.find(shorter)

根据以下评论的要求,您可以编写自己的查找方法:

def find_str(s, char):
    index = 0

    if char in s:
        c = char[0]
        for ch in s:
            if ch == c:
                if s[index:index+len(char)] == char:
                    return index

            index += 1

    return -1

print(find_str("she sells seashells by the seashore", "sea"))

答案 1 :(得分:0)

请试试这个:

a = 'she sells seashells by the seashore'
b = 'sea'
for v in [ i.start() for i in re.finditer(r'' + b + '',a) ]:
    print "at index {0} found a slice {1}".format(v,b)