首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >递归函数内部发生了什么

递归函数内部发生了什么
EN

Stack Overflow用户
提问于 2021-01-04 20:01:13
回答 1查看 22关注 0票数 0

我现在正在学习Python和递归函数。我只是被它卡住了,实际上不知道递归步骤执行后发生了什么。我有一个这样的例子

代码语言:javascript
运行
复制
# 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:])

上面的函数的结果是

代码语言:javascript
运行
复制
[1,2,3,4,5]
[2,3,4,5]
[3,4,5]
[4,5]
[5]
[]
15

我读过一些关于递归的文章,对它有一定的了解。然而,在这种情况下,我根本看不到L的大小减少了,那么列表怎么会像这样变小呢?

有人能帮我解决这个问题吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-01-04 20:03:42

这段代码:L[1:]对数组中除第一项以外的所有项进行切片。这就是减小数组大小的地方。

它等同于tail

因此,在此示例中:

L[0]是head

L[1:]是尾部

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65562392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档