python(序列遞迴)【輸出原子層級元素。。。】

來源:互聯網
上載者:User

標籤:

  晚上回去複習下原來的資料,返現Codebook中有個關於“展開一個嵌套序列”的話題。

  任務說明:序列中的子項可能是序列,子序列的子項仍可能是序列,以此類推,則序列嵌套可以達到任意的深度。需要迴圈遍曆一個序列,將其中所有的子序列展開成一個單一的、只具備基本子項的序列。

  舉例來說就是形如如下序列a:

  a = [(1, [2, 3, (7, 8)],), 4, [5, 6, (9, 10)]],根據資料上的代碼輸出的結果如下:

  (圖1),而我可能對於理解任務中所說的原子層級的元素可能有點問題。我根據自己的理解就是想將這個序列一個個的吐出來。

  例如形如[2, 3, (7, 8)]和 (9, 10)還是可以再拆分的,圖1的結果只是到了第二層時遇到序列就不拆分了,所以自己動手來做個這樣的實現,使得最後的結果2所示:

  (圖2)。

  實現的代碼過程其實就是判斷加遞迴。。

  代碼如下:

  

def flatten(sequence):    for i in sequence:        if isinstance(i, (list, tuple)):            flatten(i)            if not isinstance(i, (list, tuple)):                for subitem in i:                    print subitem        else:           print i

 

 看到這樣的文章順便有了自己的想法就順便思考下,感覺這樣的處理還是有應用價值的,記錄下來。。方便以後使用。。。。

 

  

python(序列遞迴)【輸出原子層級元素。。。】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.