在Python的递归过程中,是否可以在return语句中使用append函数

2024-09-28 05:27:10 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以在return语句中使用append函数?你知道吗

如果我说:

def test_func(n):
a=[1,2,3]
a.append(n)
return a

print test_func(6)

我得到:

[1,2,3,6]

但如果我说:

def test_func(n):
a=[1,2,3]
return a.append(n)

print test_func(6)

我得到:

None

我之所以要这样做,是因为我想编写一个递归函数,在到达基本情况之前调用它自己,但是对于它执行的每个循环,我想将结果附加到一个列表中。你知道吗

所以我想尝试以下方法:returna.append(func(new\u input))

基本上,我在上面的例子中做错了什么吗?或者不能在return语句中追加。你知道吗


Tags: 方法函数testnone列表newinputreturn
2条回答

append函数不返回任何值,而是更新现有列表。你知道吗

在第一个实现中,返回列表a,在第二个实现中,返回函数append的返回值(总是不返回任何值)。你知道吗

因此,答案是:函数append不可能出现在return语句中,并且不能按您想要的方式工作。你知道吗

您可以通过调用__iadd__来替换append

def test_func(n):
    a = [1, 2, 3]
    return a.__iadd__([n])

这应该管用。你知道吗

但我不明白你为什么不使用你的第一个想法。你知道吗

相关问题 更多 >

    热门问题