色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在Python中什么情況必須使用遞歸

jf_78858299 ? 來源:人工智能知識分享 ? 作者:人工智能知識分享 ? 2023-02-21 14:25 ? 次閱讀

在前面的文章中,我們說到了可以使用循環語句來替代遞歸。但是,有時候必須使用遞歸,或者說使用遞歸才是更方便的解決方案。

考慮像下面這樣的一個任務:計算一個嵌套的子列表結構中所有數字的總和:

[1,[2,[3,4],5],6,[7,8]] # Arbitrarily nested sublists

簡單的循環語句在這里不起作用,因為這不是一個線性迭代。嵌套的循環語句也不夠用,因為子列表可能嵌套到任意的深度并且以任意的形式嵌套。相反,下面的代碼使用遞歸來對應這種一般性的嵌套,可以順序地訪問子列表:

def sumtree(L):

tot = 0

for x in L:                                # For each item at this level

    if not isinstance(x,list):

        tot += x                           # Add numbers directly

    else:

        tot += sumtree(x)                  # Recur for sublists

return tot

L = [1,[2,[3,4],5],6,[7,8]] # Arbitrary nesting

print(sumtree(L)) # Prints 36

Pathological cases

print(sumtree([1,[2,[3,[4,[5]]]]])) # Prints 15 (right-heavy)

print(sumtree([[[[[1],2],3],4],5])) # Prints 15 (left-heavy)

盡管出于簡單性和高效率的目的,對于線性迭代通常應該使用循環語句而不是遞歸,但我們會發現像上面示例一樣的必須使用遞歸的情況還是很多的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程
    +關注

    關注

    88

    文章

    3627

    瀏覽量

    93809
  • 遞歸
    +關注

    關注

    0

    文章

    28

    瀏覽量

    9038
  • python
    +關注

    關注

    56

    文章

    4798

    瀏覽量

    84810
收藏 人收藏

    評論

    相關推薦

    stlinkv3minicubeprog檢測不到是什么情況

    我剛入手的stlinkv3mini連接電腦后可以被電腦端口識別到,驅動也已經安裝好。但是cubeprog檢測不到是什么情況
    發表于 05-27 06:40

    labview遞歸使用你嘗試過嗎?

    關于遞歸,或許labview很少聽過或者使用,不過了解下,算是一種娛樂吧,labview是確實支持遞歸的關于遞歸一個可以調用自己的VI就
    發表于 01-05 15:07

    快速掌握Python遞歸函數與匿名函數調用

    函數是Python技術學習重要的一個環節,深入掌握該階段的知識內容,對于Python技術能力的提升非常有幫助,這里就針對遞歸函數與匿名函數兩種函數調用進行系統的介紹分析。  一.
    發表于 07-19 16:22

    請問ucos運行態和就緒態是什么情況下轉化的?

    請問一下各位大神ucos 運行態 和 就緒態是什么情況下轉化的?????就是原子STM32開發指南中的狀態 轉換圖 中有運行態轉換到就緒態不知道是
    發表于 08-13 04:35

    什么情況選用PCI板卡,什么情況選用PXI?

    搭測控系統時,什么情況選用PCI板卡,什么情況選用PXI?
    發表于 03-31 20:59

    LabVIEW中使用遞歸算法

    factorial VI,1!和0!(特殊情況)被定義為結果是1。可重入VI需要強調的一點是,一個遞歸VI必須在內存復制它的很多備份,這
    發表于 04-17 20:11

    CMOS集成電路,小信號大信號分別指的是什么情況

    CMOS集成電路,小信號大信號分別指的是什么情況
    發表于 04-25 09:24

    數據在內存的存儲右對齊是什么情況下使用?

    數據在內存的存儲右對齊是什么情況下使用
    發表于 10-15 11:20

    什么情況下要進行電能質量檢測?

    什么情況下要進行電能質量檢測?
    發表于 09-08 14:20 ?691次閱讀

    什么情況下選用工業主板

    雖然工業主板和普通主板差異比較多,但是某些情況下工業主板用于商業環境也是可以的,但是實用性不是很好。什么情況下選用工業主板呢?
    的頭像 發表于 02-14 10:34 ?872次閱讀
    <b class='flag-5'>什么情況</b>下選用工業主板

    Python支持遞歸函數

    Python支持遞歸函數——即直接或間接地調用自身以進行循環的函數。遞歸是頗為高級的話題,并且它在Python相對少見。然而,它是一項應該
    的頭像 發表于 02-21 14:28 ?656次閱讀

    什么是Python遞歸函數

    遞歸函數必須有終止條件。編程,函數的調用要占用名叫棧(stack)的內存空間。調用函數時,程序會將相關的數據存儲到計算機的棧里。
    的頭像 發表于 02-23 10:25 ?1847次閱讀

    IGBT模塊損壞時,什么情況導致短路?什么情況導致開路?

    IGBT模塊損壞時,什么情況導致短路?什么情況導致開路?? IGBT模塊是一種功率模塊,用于高功率電子設備控制。當IGBT模塊使用過程遭受損壞時,可能會出現短路或開路的問題。這兩種
    的頭像 發表于 10-19 17:08 ?4751次閱讀

    Python 什么情況下才進行重試

    如何寫得優雅、易用,是我們要考慮的問題。 這里要給大家介紹的是一個第三方庫 - Tenacity (標題中的重試機制并并不準確,它不是 Python 的內置模塊,因此并不能稱之為機制),它實現了幾乎我們可以使用到的所有重試場景,比如:
    的頭像 發表于 10-21 11:18 ?373次閱讀

    Python遞歸的經典案例

    當我們碰到諸如需要求階乘或斐波那契數列的問題時,使用普通的循環往往比較麻煩,但如果我們使用遞歸時,會簡單許多,起到事半功倍的效果。這篇文章主要和大家分享一些和遞歸有關的經典案例,結合一些資料談一下個人的理解,也借此加深自己對遞歸
    的頭像 發表于 08-05 15:57 ?346次閱讀
    主站蜘蛛池模板: 亚洲AV久久无码精品九号| 高清观看ZSHH96的视频素材| 免费看成人毛片| 精品国产乱码久久久久久下载| 赤兔CHINESE最新男18GUY | 91热久久免费精品99| 伊人综合在线影院| 伊人久久大香线蕉综合高清| 野草在线视频完整视频| 亚洲欧美中文字幕高清在线| 亚洲欧美一区二区三区九九九| 亚洲精品成人AV在线观看爽翻| 亚洲高清国产拍精品影院| 校园全肉高h湿一女多男| 香港日本三级亚洲三级| 午夜亚洲WWW湿好爽| 天天射天天干天天插| 午夜免费福利片| 亚洲精品中文字幕在线| 伊人久久大香线蕉综合高清| 影音先锋av丝袜天堂| 3344永久在线观看视频免费| 91精品福利一区二区| couo福利姬图库| 调教玩弄奶头乳夹开乳震动器| 国产XXXXXX农村野外| 国产啪视频在线播放观看| 国语自产拍在线视频普通话| 久艾草在线精品视频在线观看| 久久亚洲国产中文字幕| 男人网站在线观看| 日韩欧美一级| 亚洲成色WWW久久网站夜月| 亚洲永久精品ww47app| 1000部做羞羞事禁片免费视频网站| 99视频网址| 国产精品成人免费观看| 荷兰少归BVBV| 内射少妇36P亚洲区| 手机在线免费观看毛片| 亚洲精品在线观看视频|