2017-04-25 120 views
-2

我有2個相同大小的列表。我想創建一個新的列表,它們以列表的方式組合這兩個列表,列表中的列表將具有相同索引的元素並且此列表具有相同的索引。更改數據結構

輸入例如:

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

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

你知道該怎麼做?

回答

0

您可以壓縮他們:

list(zip(a, b))

1

使用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

1

這給你的列表中。

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

使用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]] 
1

這會給你的元組

combined = list(zip(a, b)) 

如果你真的需要你的列表的Elemen TS是列表,然後我們可以寫

combined = list(map(list, zip(a, b))) 
0
a = [1, 2, 3] 
b = [4, 5, 6] 

combined = list(zip(a,b)) 

for i in combined: 
    print(i) 

使用zip命令這兩個列表相結合。