新聞中心
很多知識(shí)點(diǎn)的使用是需要結(jié)合在一起,這就會(huì)出現(xiàn)一個(gè)代碼中嵌套了好幾個(gè)函數(shù),雖然能夠?qū)崿F(xiàn)一些功能上的要求,但是在理解上會(huì)加深難度。不過(guò)本篇我們需要做的是,把復(fù)雜的嵌套展開成簡(jiǎn)單的列表,相信這個(gè)化繁為簡(jiǎn)的方法很多小伙伴都想學(xué)習(xí)了,其他的不多說(shuō),接下來(lái)我們就從python3展開列表的代碼開始進(jìn)行講解。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到橋東網(wǎng)站設(shè)計(jì)與橋東網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋橋東地區(qū)。
展開列表
該方法將通過(guò)遞歸的方式將列表的嵌套展開為單個(gè)列表。
def spread(arg):
ret = []
for i in arg:
if isinstance(i, list):
ret.extend(i)
else:
ret.append(i)
return ret
def deep_flatten(lst):
result = []
result.extend(
spread(list(map(lambda x: deep_flatten(x) if type(x) == list else x, lst))))
return result
deep_flatten([1, [2], [[3], 4], 5]) # [1,2,3,4,5]
拓展:列表的差
該方法將返回第一個(gè)列表的元素,其不在第二個(gè)列表內(nèi)。如果同時(shí)要反饋第二個(gè)列表獨(dú)有的元素,還需要加一set_b.difference(set_a)。
def difference(a, b):
set_a = set(a)
set_b = set(b)
comparison = set_a.difference(set_b)
return list(comparison)
difference([1,2,3], [1,2,4]) # [3]
看完之后的小伙伴,可以都動(dòng)手試一下展開列表的方法,畢竟把繁瑣的事情變簡(jiǎn)單還是很快樂(lè)的事情。同時(shí)也可以了解一下列表的差,之后的文章會(huì)有這方面的深入講解。更多Python學(xué)習(xí)指路:PyThon學(xué)習(xí)網(wǎng)教學(xué)中心。
網(wǎng)站欄目:創(chuàng)新互聯(lián)Python教程:如何寫python3展開列表的代碼?
網(wǎng)頁(yè)路徑:http://m.fisionsoft.com.cn/article/ccspgpe.html


咨詢
建站咨詢
