中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

阿尔山市| 隆德县| 井陉县| 赣榆县| 抚顺县| 九台市| 延边| 伊川县| 乐陵市| 武乡县| 濮阳县| 涞水县| 涪陵区| 桃园县| 阳高县| 宾阳县| 井研县| 鹤庆县| 阿克苏市| 涿州市| 山阴县| 博野县| 临汾市| 上栗县| 新巴尔虎右旗| 东兰县| 京山县| 明光市| 北宁市| 健康| 历史| 石阡县| 大洼县| 香格里拉县| 曲靖市| 中方县| 兰坪| 江安县| 襄垣县| 兴安县| 西乡县|