更改数据结构

更改数据结构

问题描述:

我有2个相同大小的列表。我想创建一个新的列表,它们以列表的方式组合这两个列表,列表中的列表将具有相同索引的元素并且此列表具有相同的索引。更改数据结构

输入例如:

a = [1, 2, 3] 
b = [4, 5, 6] 

combined = [[1, 4], [2, 5], [3, 6]] 

你知道该怎么做?

您可以压缩他们:

list(zip(a, b))

使用built-in zip

>>> a = [1, 2, 3] 
>>> b = [4, 5, 6] 
>>> zip(a, b) 
[(1, 4), (2, 5), (3, 6)] 
+2

对于Python3,这将返回类似于: Alexander

+0

@Alexander您可以使用list()强制字符串表示形式。我忽略它在这里简化。大部分的Python 3列表构造都确实返回了生成器。 有些人可能认为'list'包装是强制性的,否则。 –

+0

对于Python3,它产生一个''这是一个懒惰评估的迭代。只需编写'list(zip(a,b))'来强制评估。 – Useless

这给你的列表中。

combined = [[i,k] for i,k in zip(a,b)] 

使用zip

>>> list(zip(a,b)) 
[(1, 4), (2, 5), (3, 6)] 

或者你想列表,而不是元组:

>>> [[x,y] for x,y in zip(a,b)] 
[[1, 4], [2, 5], [3, 6]] 

这会给你的元组

combined = list(zip(a, b)) 

如果你真的需要你的列表的Elemen TS是列表,然后我们可以写

combined = list(map(list, zip(a, b))) 

a = [1, 2, 3] 
b = [4, 5, 6] 

combined = list(zip(a,b)) 

for i in combined: 
    print(i) 

使用zip命令这两个列表相结合。