findString程序python

时间:2010-09-21 04:34:00

标签: python

我有一个赋值表示要创建一个findString函数,它接受2个字符串'target'和'query',并返回查询出现的目标中所有索引的列表。如果target不包含查询,则返回空列表。

例如: FINDSTRING(“attaggtttattgg”,” G-G”)

返回:

[4,12]

我根本不知道如何开始写这个函数。请大家帮帮我。非常感谢你!!!

4 个答案:

答案 0 :(得分:1)

因为已经给出答案:

def find_matches(strng, substrng):
    substrg_len = len(substr)
    return [i for i in range(len(strg) + 1 - substrg_len) 
            if strg[i:i+substrg_len] == substrg]

答案 1 :(得分:0)

  

def find_string(search,needle):       start = -1       结果= []

while start + 1< len(search):
    start = search.find(needle, start +1)

    if start == -1:
        break

    results.append(start )

return results

答案 2 :(得分:0)

以下是一些可以帮助您入门的提示。

  1. target.find(query)将返回目标中query的索引。如果找不到query,则返回-1。

  2. 可以切割字符串。 target[pos:]将从pos开始为您提供目标的子字符串。

答案 3 :(得分:0)

这可能需要一些错误处理:

def find_allPatterns(strVal, strSub):
    listPos = []
    strTemp = strVal

    while True:
        try:
            posInStr = strTemp.index(strSub)
        except ValueError:
            posInStr = None
        if posInStr:
            listPos.append(posInStr)
            subpos = posInStr + len(strSub)
            strTemp = strTemp[subpos:]
        else:
            break

    return listPos

print find_allPatterns('attaggtttattgg', 'gg')

输出:

[4, 6]