91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Python3中使用遞歸函數

發布時間:2021-04-14 17:20:38 來源:億速云 閱讀:165 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關怎么在Python3中使用遞歸函數,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

概述

遞歸函數即直接或間接調用自身的函數,且遞歸過程中必須有一個明確的遞歸結束條件,稱為遞歸出口。遞歸極其強大一點就是能夠遍歷任意的,不可預知的程序的結構,比如遍歷復雜的嵌套列表。

遞歸求和

我們可以利用遞歸函數實現一個Python內置函數sum()的遞歸版。

# 遞歸
def d_sum(L):
  if not L:
    return 0
  else:
    return L[0] + d_sum(L[1:])

sum_l = d_sum(range(10))
print(sum_l)

示例結果

45

該遞歸函數怎么實現列表元素相加的呢? 我們知道函數是有本地作用域的,對函數調用的每一個打開的時候,在運行時調用堆棧上都有自己的一個本地作用域的副本,即L在每個層級都是不同的,比如我們可以通過每次調用時添加一個打印語句,更加直觀展示每個層級L的情況

# 遞歸
def d_sum(L):
  # 打印該層級L
  print(L)
  if not L:
    return 0
  else:
    return L[0] + d_sum(L[1:])
# 構建 0-10 數字元素列表
L = [i for i in range(10)]
sum_l = d_sum(L)
print(sum_l)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 4, 5, 6, 7, 8, 9]
[3, 4, 5, 6, 7, 8, 9]
[4, 5, 6, 7, 8, 9]
[5, 6, 7, 8, 9]
[6, 7, 8, 9]
[7, 8, 9]
[8, 9]
[9]
[]
45

處理任意結構

比如我們可以利用遞歸計算一個嵌套的子列表結構中所有數字的總和

def dd_sum(L):
  tot = 0
  for x in L:
    if not isinstance(x, list):
      tot += x
    else:
      tot += dd_sum(x)
  return tot

# 嵌套列表
L = [1,[2,3],[4,[5,6,7],8],9]
sum_l = dd_sum(L)
print(sum_l)

示例結果:

45

以上就是怎么在Python3中使用遞歸函數,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

杂多县| 乌审旗| 石门县| 葫芦岛市| 晴隆县| 沧州市| 斗六市| 靖州| 绵竹市| 平潭县| 东辽县| 顺平县| 盈江县| 将乐县| 永胜县| 公安县| 汉阴县| 四子王旗| 西宁市| 嘉定区| 平邑县| 金溪县| 通州市| 兴安盟| 酒泉市| 龙陵县| 浦县| 灌南县| 白山市| 浪卡子县| 攀枝花市| 宁阳县| 隆子县| 民县| 巴青县| 石台县| 若尔盖县| 明光市| 灵山县| 崇文区| 方山县|