在Python中返回一个列表

时间:2014-03-28 02:54:31

标签: python list

我在python中工作,尝试编写一个代码来制作Fibonacci序列并将结果作为列表返回。我该怎么做呢?我能够编写一个代码来返回值集而不是列表,但我不确定如何编写代码来返回列表。

(这里的代码我只需返回值,而不是列表)

def fibo1(par):
var1 = 0
var2 = 1
while var2 < par:
    print var2
    var3 = var1 + var2
    var1 = var2
    var2 = var3   

def main():
    number = int(raw_input("What is the number? "))
    return (fibo1(number))

main()

2 个答案:

答案 0 :(得分:0)

这很有效。而不是打印var2,只需将其添加到列表中,并在完成后返回列表。这是工作代码:

def fibo1(par):
    var1 = 0
    var2 = 1
    list = []
    while var2 < par:
        list.append(var2)
        var3 = var1 + var2
        var1 = var2
        var2 = var3   
    return list

def main():
    number = int(raw_input("What is the number? "))
    print fibo1(number)

main()

答案 1 :(得分:0)

当您想要返回值时,可以使用yield将fibo1函数转换为生成器,因此您只需将其用作列表函数的参数:

def fibo1(par):
    var1 = 0
    var2 = 1
    while var2 < par:
        yield var2
        var3 = var1 + var2
        var1 = var2
        var2 = var3   

def main():
    number = int(raw_input("What is the number? "))
    return list(fibo1(number))

print repr(main())