Re: [問題] 請教 List 問題

看板Python作者 (..........)時間17年前 (2008/01/19 01:37), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《plom (plom)》之銘言: : 請教各位了, : 假設有一個 List =[['ac','bc'],['cd','de','ef']] : 如何簡潔語法可以將它解開成:['ac','bc','cd','de','ef']? 這問題可以一般化為 flatten list in python . 把 keyword 丟上 google 可以查到不少解法,如 def flatten(x): """flatten(sequence) -> list Returns a single, flat list which contains all elements retrieved from the sequence and all recursively contained sub-sequences (iterables). Examples: >>> [1, 2, [3,4], (5,6)] [1, 2, [3, 4], (5, 6)] >>> flatten([[[1,2,3], (42,None)], [4,5], [6], 7, MyVector(8,9,10)]) [1, 2, 3, 42, None, 4, 5, 6, 7, 8, 9, 10]""" result = [] for el in x: #if isinstance(el, (list, tuple)): if hasattr(el, "__iter__") and not isinstance(el, basestring): result.extend(flatten(el)) else: result.append(el) return result -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.76.240.242

01/20 21:23, , 1F
謝謝你詳細的解說 ^^
01/20 21:23, 1F
文章代碼(AID): #17aEFpuR (Python)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
文章代碼(AID): #17aEFpuR (Python)