Skip to main content
 首页 » 编程设计

python之在 Python 中返回列表

2025年05月04日1298°冷暖

我正在学习 Python,并且遇到了一些 Pythonic 怪事。我不明白为什么在返回时,这个函数会丢弃数据。

def foo(mylist=None): 
    print "Input: {}".format(mylist) 
    if mylist is None: 
        mylist = list() 
    if len(mylist) == 3: 
        return mylist 
    else: 
        mylist.append(len(mylist)) 
        foo(mylist) 
 
print "Output: {}".format(foo()) 

这打印:

Input: None 
Input: [0] 
Input: [0, 1] 
Input: [0, 1, 2] 
Output: None 

我猜它与指向一个不再存在的列表有关,但我没有在一个更简单的示例中得到它:

def simple_foo(): 
    to_return = [1, 2, 3] 
    return to_return 
 
print "Simple output: {}".format(simple_foo()) 

我什至尝试过(在 foo 中)将我的列表深度复制到一个 to_return 变量中,然后返回它,但这似乎也不起作用。任何人都可以阐明这一点吗?我将不胜感激。

请您参考如下方法:

你必须保持 returning:

你的递归调用:

foo(mylist) 

需要返回它的返回值:

return foo(mylist)