我现在正在学习Python和递归函数。我只是被它卡住了,实际上不知道递归步骤执行后发生了什么。我有一个这样的例子
# sum of list
def my_sum(L):
# this step is just print out current list
# at each level
print(L)
if not L:
return 0
else:
return L[0] + my_sum(L[1:])
上面的函数的结果是
[1,2,3,4,5]
[2,3,4,5]
[3,4,5]
[4,5]
[5]
[]
15
我读过一些关于递归的文章,对它有一定的了解。然而,在这种情况下,我根本看不到L的大小减少了,那么列表怎么会像这样变小呢?
有人能帮我解决这个问题吗?
谢谢!
发布于 2021-01-04 12:03:42
这段代码:L[1:]
对数组中除第一项以外的所有项进行切片。这就是减小数组大小的地方。
它等同于tail
。
因此,在此示例中:
L[0]
是head
L[1:]
是尾部
https://stackoverflow.com/questions/65562392
复制相似问题