python-分解多列表嵌套

針對多列表嵌套,如何獲取所有元素?

之前使用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)

這樣,不管多少個列表嵌套,只需傳參給函數就行,可以實現逐級分解。函數還能被移植調用,可用性增強。