「A = [1,2,[12,5,(6,7,9)],[34,56]] 拉姆達升:對於子列表項在升在子列表]項轉換包含子列表和元組列表成扁平列表
AB =拉姆達一個:[項目爲子列表以用於在子列表]項
打印(AB的(a))」
我想是這樣輸出[1 ,2,12,5,6,7,9,34,56]
「A = [1,2,[12,5,(6,7,9)],[34,56]] 拉姆達升:對於子列表項在升在子列表]項轉換包含子列表和元組列表成扁平列表
AB =拉姆達一個:[項目爲子列表以用於在子列表]項
打印(AB的(a))」
我想是這樣輸出[1 ,2,12,5,6,7,9,34,56]
享受:
def convert(lst):
if all(not isinstance(e, (list, tuple)) for e in lst):
return lst[:]
else:
result = []
for e in lst:
if isinstance(e, (list, tuple)):
converted = convert(e)
result.extend(converted)
else:
result.append(e)
return result
我把這當作job.First轉換通列表到字符串表示的文本處理,然後分割字符串成小部分,每個部分包含一個元素,最後我用一個空列表接受這些新鮮elements.Here是我的代碼snippt:
def simpleL(complexL):
a =repr(complexL).split(',')
c=[]
for i in a:
element =i.strip('[()] ')
if element.isdigit():
c.append(int(element))
return c
output = []
def uni_lst(lst):
if type(lst) in [list, tuple]:
for x in lst:
if type(x) in [list, tuple]:
uni_lst(x)
else:
output.append(x)
return output
上面的代碼將使得從任何類型的列表或元組的一個列表。
據我所知,它的工作原理,但我發現有一些缺點。首先,最好使用'isinstance'內建函數來檢查實例:'isinstance(lst,(list,tuple))'而不是[list,tuple]中的type(x)'(詳細信息參見PEP8 :https://www.python.org/dev/peps/pep-0008/)。另一個缺點是使用全局對象'輸出',一個好的函數必須執行所有的操作。 – Fomalhaut
謝謝您的回答。但我張貼一些另一個版本來解決......請給你的意見..... – python19
你在哪裏後呢? – Fomalhaut
就在你的答案下面......我發佈了另一個答案...... – python19