此函数打印多个值,这些值是字符串z的索引,但是我想存储这些值,并且使用return将终止该函数,只留下几个第一个值。
def find(a):
index=a
while index<len(z)-1:
if z[index]=="T":
for index in range (index+20,index+30):
if z[index]=="A" and z[index+1]=="G" and z[index+2]=="T":
a=index
print a
index=index+1
答案 0 :(得分:1)
最直接的方法是返回tuple
或list
:
def find(a):
index=a
ret = []
while index<len(z)-1:
if z[index]=="T":
for index in range (index+20,index+30):
if z[index]=="A" and z[index+1]=="G" and z[index+2]=="T":
a=index
ret.append(a)
index=index+1
return ret
您也可以使用yield
。我正在删除它的代码(你可以阅读链接,它非常好),因为我认为返回list
比yield
更有意义。如果您不打算始终使用返回的所有值,或者返回值太多而无法保留在内存中,则yield
更有意义。