1. 程式人生 > >Python 快速展開巢狀多層的list

Python 快速展開巢狀多層的list

def flatten(input_list):
    output_list = []
    while True:
        if input_list == []:
            break
        for index, i in enumerate(input_list):
            if type(i)== list:
                input_list = i + input_list[index+1:]
                break
            else:
                output_list.
append(i) input_list.pop(index) break return output_list
>>> ls = [[1,2,3],4,[5,6,[7,8,9,[10,11,12,13]]],[14,15,16]]
>>> ls
[[1, 2, 3], 4, [5, 6, [7, 8, 9, [10, 11, 12, 13]]], [14, 15, 16]]
>>> flatten(ls)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16]