从两个列表创建嵌套列表

smi*_*thy 3 python

我有两个这样的列表:

t = [1,2,3,4]
f = ['apples', 'oranges','grapes','pears']
Run Code Online (Sandbox Code Playgroud)

我需要创建一个这样的列表列表:

data =  [
        ['Fruit', 'Total'],
        ['apples', 1],
        ['oranges', 2],
        ['grapes', 3],
        ['pears' 4]
    ]
Run Code Online (Sandbox Code Playgroud)

我这样做了:

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]])
Run Code Online (Sandbox Code Playgroud)

只是想知道是否有更多的Pythonic方式.

sha*_*aan 6

使用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]]
>>>
Run Code Online (Sandbox Code Playgroud)