2015-07-10 48 views
1

我试图将一个嵌套列表的列表(列表数量可以是2列表+)到一个元组列表。列表到单个列表的嵌套列表

名单看​​起来是这样的:

exampleList = [['A', 'B', 'C', 'D'], [1, 2, 3, 4], [10, 20, 30, 40]] 

,我想它是这样的;

newList = [('A', 1, 10), ('B', 2, 20), ('C', 3, '30)...] 

我知道如果你做zip(list1, list2),它会变成一个元组列表。但是我怎么去做一个列表清单呢?

我尝试使用zip概念有:

test = [] 
for data in exampleList: 
    test.append(zip(data)) 

但它并没有为我工作了。

感谢您的高级帮助!

+0

什么是您的实际预期输出?究竟是'newList',但元素是列表而不是元组?什么阻止你做'newList = [list(e)for zip in(* exampleList)]''? –

+1

查看zip的手册https://docs.python.org/3/library/functions.html#zip即使参数列表显示为'* iterable' – msw

回答

6
>>> exampleList = [['A', 'B', 'C', 'D'], [1, 2, 3, 4], [10, 20, 30, 40]] 
>>> list(zip(*exampleList)) 
[('A', 1, 10), ('B', 2, 20), ('C', 3, 30), ('D', 4, 40)] 

编辑:

如果你希望你的输出是不是一个元组列表列出的清单,

[list(i) for i in zip(*empampleList)] 

应该做的伎俩

+0

OP是否已经这样做并要求列表列表而不是元组列表?我知道一旦生成了元组列表(请参阅我的评论)这么做很简单,但我不认为这回答了这个问题。诚然,这是令人困惑的,我可能会误解它。 –

+0

@ Two-BitAlchemist:我以为OP试图压缩列表中包含的列表。但我也会解释你的评论 – inspectorG4dget