python-分解多列表嵌套
- 2020 年 1 月 9 日
- 筆記
針對多列表嵌套,如何獲取所有元素?
之前使用for循環+if判斷,進行分解,如下:
for first_layer in lists: if isinstance(first_layer,list): for second_layer in first_layer:
if isinstance(second_layer,list):
for third_layer in second_layer:
print third_layer
else: print first_layer
但是,若遇到列表有4重嵌套、5重嵌套…等等,代碼顯得無比複雜、臃腫。
於是想到函數復用性,如下:
#!/usr/bin/env python #coding:utf-8 fruit=['a','b',123,['c',345,'d',['e','f',90],22,'cc'],'po',34] def layer(lists): for first_layer in lists: if isinstance(first_layer,list): layer(first_layer) else: print first_layer layer(fruit)
這樣,不管多少個列表嵌套,只需傳參給函數就行,可以實現逐級分解。函數還能被移植調用,可用性增強。