您好,登錄后才能下訂單哦!
python中很多時候可能會遇到多層嵌套可迭代列表如下:
list1 = [11, 22, [33, 44, [55, 66]]]
list2 = [11, 22, [33, 44]]
其中我們想要的結果只是一個所有的結果列表而已.此時就需要一個剝皮函數(shù),把嵌套的元素全部剝離出來,放入一個列表中(遞歸實現(xiàn)).
實現(xiàn)函數(shù)如下:
def f(x, ret=None):
# 把上一次的結果傳遞過來
if not ret:
ret = []
for i in x:
if isinstance(i, list):
# 如果i為列表,則返回繼續(xù)處理,且把現(xiàn)在的處理結果傳遞回去
f(i, ret)
else:
ret.append(i)
# 最終返回所有的元素
return ret
第二種方法:
# 第二種方法
def f2(x):
ret = []
for m in x:
if isinstance(m, list):
# 進行遞歸剝皮將列表挨個遞歸添加到ret列表中
# 因為f2函數(shù)最終返回的是一個列表,所以不管多少層f2(m)將始終是一個列表
# 循環(huán)將元素加入ret列表中
for n in f2(m):
ret.append(n)
else:
ret.append(m)
return ret
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。