在python中存储来自单个函数的多个值

时间:2013-10-03 12:01:34

标签: python recursion return

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

1 个答案:

答案 0 :(得分:1)

最直接的方法是返回tuplelist

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。我正在删除它的代码(你可以阅读链接,它非常好),因为我认为返回listyield更有意义。如果您不打算始终使用返回的所有值,或者返回值太多而无法保留在内存中,则yield更有意义。