我有2個相同大小的列表。我想創建一個新的列表,它們以列表的方式組合這兩個列表,列表中的列表將具有相同索引的元素並且此列表具有相同的索引。更改數據結構
輸入例如:
a = [1, 2, 3]
b = [4, 5, 6]
combined = [[1, 4], [2, 5], [3, 6]]
你知道該怎麼做?
我有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)]
這給你的列表中。
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命令這兩個列表相結合。
對於Python3,這將返回類似於: –
Alexander
@Alexander您可以使用list()強制字符串表示形式。我忽略它在這裏簡化。大部分的Python 3列表構造都確實返回了生成器。 有些人可能認爲'list'包裝是強制性的,否則。 –
對於Python3,它產生一個''這是一個懶惰評估的迭代。只需編寫'list(zip(a,b))'來強制評估。 –
Useless