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

溫馨提示×

溫馨提示×

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

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

python遞歸函數該怎么用

發布時間:2021-12-18 14:30:44 來源:億速云 閱讀:133 作者:iii 欄目:大數據

本篇內容介紹了“python遞歸函數該怎么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

首先,函數就是函數,遞歸函數也仍然是函數,大家不要誤以為函數還分了許多種。只是遞歸函數和其他函數有所不同,因此給它單獨起了一個名字,目的是方便我們交流,你一說遞歸函數,我就明白了,這個函數在執行的時候會調用自己,僅此而已。

先說我遇到的問題吧。我的程序調用一個API,返回的結果是一個字典,讓人難受的是,我需要的信息在字典里,但分布的位置卻不是固定的,例如下面的字典:

maze_dict = {
   'machine':'apple',
   'name':u'升',
   'bus':{
       'no':1,
       'direction':'east',
       'west':{
           'where':'beijing',
           'date':'today',
           'python':'python1'
       }
   },
   'python':'python2',
   'pythongroup':{
       'group':{
           'group':{
               'group':{
                   'python':'python3'
               }
           }
       }
   }
}

假設我想提取的信息都是以python作為關鍵字的鍵值對里的value部分,可是,python關鍵字具體在哪里,我事先是不知道的。我不能通過關鍵字,從最外層向里面層層訪問,因為這個路徑是不確定的。這里,我們就要用到遞歸函數,層層推進。

def find_python(info,lst):
   if not isinstance(info,dict):
       return

   for k,v in info.items():
       if k == 'python':
           lst.append(v)
       elif isinstance(v,dict):
           find_python(v,lst)

if __name__ == '__main__':
   lst = []
   find_python(maze_dict,lst)
   print lst

find_python函數的定義并不復雜,當一個鍵值對的value部分是字典時,它便再次調用自己,到下一層去尋找python關鍵字。

理解遞歸函數的難點在于,每一次函數的調用都從頭開始執行了,但是函數傳入的參數是變化的,其次,進入到下一層函數時,這一層函數并沒有終結哦,而是等到下一層函數結束時,自己再繼續執行,就像盜夢空間一樣,夢境層層遞進,但是也會有一個退出的過程,一定是下一層的夢境結束了,當前這一層做夢的人醒過來,然后繼續退出,上一層夢境的人接著醒過來。

“python遞歸函數該怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

AI

昌江| 诸暨市| 友谊县| 三明市| 乐安县| 灵宝市| 齐齐哈尔市| 武安市| 尤溪县| 巩留县| 博爱县| 保亭| 庆云县| 行唐县| 宣恩县| 崇仁县| 石景山区| 庆元县| 锦屏县| 富川| 永年县| 宁海县| 太湖县| 天柱县| 德阳市| 泸州市| 湄潭县| 习水县| 佛冈县| 昆明市| 龙海市| 唐山市| 日喀则市| 宁津县| 菏泽市| 甘德县| 噶尔县| 望城县| 临潭县| 焦作市| 马关县|