2014-07-17 46 views
2

我有兩個列表這樣創建嵌套列表:從兩個列表

t = [1,2,3,4] 
f = ['apples', 'oranges','grapes','pears'] 

我需要創建一個列表的列表如下:

data = [ 
     ['Fruit', 'Total'], 
     ['apples', 1], 
     ['oranges', 2], 
     ['grapes', 3], 
     ['pears' 4] 
    ] 

我已經做到了這一點:

l = [] 
l.append(['Fruit', 'Total']) 
# I guess I should have check that lists are the same size? 
for i, fruit in enumerate(f): 
    l.append([fruit, t[i]]) 

只是想知道是否有更多的Pythonic這樣做。

+0

'打印拉鍊(F,T)'你可能感興趣的,雖然它返回一個元組列表 - 未列出的清單。 – alfasin

回答

5

使用zip和列表理解是另一種方式來做到這一點。即,通過做l.extend([list(a) for a in zip(f, t)])

演示:

>>> t = [1,2,3,4] 
>>> f = ['apples', 'oranges','grapes','pears'] 
>>> l = [] 
>>> l.append(['Fruit', 'Total']) 
>>> l.extend([list(a) for a in zip(f, t)]) 
>>> l 
[['Fruit', 'Total'], ['apples', 1], ['oranges', 2], ['grapes', 3], ['pears', 4]] 
>>> 
+0

詩意!真... –

0

不知道我喜歡它,但:

r = [[f[i], t[i]] if i >= 0 else ['fruit', 'total'] for i in range(-1, len(t))]