1. 程式人生 > >如何將一個列表巢狀的結構中的每個最底層元素取出,並形成一個新的列表

如何將一個列表巢狀的結構中的每個最底層元素取出,並形成一個新的列表

有如下的巢狀列表

x0 = [('tom','jerry','spike'),('micky','minnie','donald')]

現在要將其中的最底層元素取出,形成一個新的列表:

['tom', 'jerry', 'spike', 'micky', 'minnie', 'donald']

常規方法用雙重for迴圈來取出,並逐個新增的新的列表中:

character0=[]
for i in x0:
    for j in i:
        character0.append(j)
print character0

輸出:

['tom', 'jerry', 'spike', 'micky', 'minnie', 'donald']

現在可以用一種較為緊湊的形式來達到同樣的效果:

character1=[]
character1 = [i for innertuple in x0 for i in innertuple]
print character1

輸出:

['tom', 'jerry', 'spike', 'micky', 'minnie', 'donald']

如果巢狀結構再複雜一些:

x1=[([1,2,3],[4,5,6]),([4,5,6],[7,8,9])]

那麼在迴圈中再加一層即可:

print [i for innertuple in x1 for innerlist in innertuple for i in innerlist ]

輸出:

[1, 2, 3, 4, 5, 6, 4, 5, 6, 7, 8, 9]