新聞中心
python中的列表是可以嵌套的。將嵌套的list遍歷并輸出是很常見的需求。以下通過兩種方法達(dá)到目的

公司主營業(yè)務(wù):網(wǎng)站設(shè)計制作、成都做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出龍?zhí)睹赓M(fèi)做網(wǎng)站回饋大家。
def nested_list(list_raw,result): for item in list_raw: if isinstance(item, list): nested_list(item,result) else: result.append(item) return result def flatten_list(nested): if isinstance(nested, list): for sublist in nested: for item in flatten_list(sublist): yield item else: yield nested def main(): list_raw = ["a",["b","c",["d"]]] result = [] print "nested_list is: ",nested_list(list_raw,result) print "flatten_list is: ",list(flatten_list(list_raw)) main()
讓代碼run起來,輸出為:
nested_list is: ['a', 'b', 'c', 'd'] flatten_list is: ['a', 'b', 'c', 'd']
nested_list方法采用遞歸的方式,如果item是list類型,繼續(xù)遞歸調(diào)用自身。如果不是,將item加入結(jié)果列表中即可。
flatten_list方法則是采用生成器的方式,本質(zhì)上也是遞歸的思路。
推薦學(xué)習(xí)《python教程》
2.兩層嵌套list去重
list里面套了一層list,需要去重,并在生成一個去重的list。請看代碼:
def dup_remove_set(list_raw): result = set() for sublist in list_raw: item = set(sublist) result = result.union(item) return list(result) def main(): list_dup = [[1,2,3],[1,2,4,5],[5,6,7]] print dup_remove_set(list_dup)
讓代碼run起來:
[1, 2, 3, 4, 5, 6, 7]
基本思路:將每一個子list轉(zhuǎn)為set,然后求并集,即可。
3.多重嵌套去重
def dup_remove(list_raw,result): for item in list_raw: if isinstance(item, list): dup_remove(item,result) else: result.add(item) return list(result) def main(): list_raw = ["a",["b","c",["d","a","b"]]] result = set() print "dup_remove is: ",dup_remove(list_raw,result)
讓代碼run起來:
dup_remove is: ['a', 'c', 'b', 'd']
基本思路與之前遍歷嵌套list的思路差不多,唯一的區(qū)別就是之前result是一個list,而要去重的話用result是一個set,保證最后的結(jié)果為去重的結(jié)果。
分享題目:創(chuàng)新互聯(lián)Python教程:python中l(wèi)ist可以嵌套嗎
瀏覽路徑:http://www.dlmjj.cn/article/djodpei.html


咨詢
建站咨詢
