我的if语句看起来很奇怪,但我想不出如何防止打印-1值:
set xlabel 'xlabel' offset 0, -0.5
set ylabel 'ylabel' offset 0.5, 0
这是我的输出:
### script counts the number of times that a key string appears in target string
from string import *
def countSubStringMatch(target,key):
value = target.find(key, 0)
print value
while value > -1:
value = value + 1
value = target.find(key, value)
if value != -1:
print value
else:
break
countSubStringMatch("atgacatgcacaagtatgcat","atg")
答案 0 :(得分:2)
您可以删除初始打印语句,而是在循环体的开头而不是在结尾处打印值。
def countSubStringMatch(target,key):
value = target.find(key, 0)
while value > -1:
print value
value = value + 1
value = target.find(key, value)
顺便说一下,如果你只想要匹配的数量而不是每个匹配的开头的索引,你可以使用count
:
>>> count("atgacatgcacaagtatgcat","atg")
# 3
答案 1 :(得分:2)
请尽可能使用代码,其他人已经写过。基于Find all occurrences of a substring in Python:
string = "atgacatgcacaagtatgcat"
print [i for i in range(len(string)) if string.startswith('atg', i)]
答案 2 :(得分:1)
def countSubStringMatch(target,key):
res = set( [ data.find('atg',i) for i in range(len(data)) ] )
res.remove(-1)
print res
countSubStringMatch("atgacatgcacaagtatgcat","atg")
set([0, 5, 15])