0

这个函数打印多个值,它们是字符串 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
4

1 回答 1

1

最直接的方法是返回一个tupleor 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在您的情况下返回 a 比yield. yield如果您不打算始终使用所有返回的值,或者如果返回值太多而无法保存在内存中,则更有意义。

于 2013-10-03T12:05:45.670 回答