我想以特定的方式合併三個列表。
考慮名單:如何合併列表以獲取列表的列表?
a = [ a1 , a2 , a3 , a4 ]
b = [ b1 , b2 , b3 , b4 ]
c = [ c1 , c2 , c3 , c4 ]
最後,我想獲得一個列表的列表:
res = [[a1,b1,c1],[a2,b2,c2]....[a4,b4,c4]]
我Python中的新手。有人可以幫我嗎?
我想以特定的方式合併三個列表。
考慮名單:如何合併列表以獲取列表的列表?
a = [ a1 , a2 , a3 , a4 ]
b = [ b1 , b2 , b3 , b4 ]
c = [ c1 , c2 , c3 , c4 ]
最後,我想獲得一個列表的列表:
res = [[a1,b1,c1],[a2,b2,c2]....[a4,b4,c4]]
我Python中的新手。有人可以幫我嗎?
嘗試:
x = zip(listA, listB, listC)
Python是美麗的像。現在這會給你元組,而不是列表中的列表。從元組轉換爲列表需要調用y = list(x)
。
您可以嘗試zip()
:
的Python 2.x的:
>>> a = [ 'a1' , 'a2' , 'a3' , 'a4' ]
>>> b = [ 'b1' , 'b2' , 'b3' , 'b4' ]
>>> c = [ 'c1' , 'c2' , 'c3' , 'c4' ]
>>>
>>> map(list, zip(a,b,c))
[['a1', 'b1', 'c1'], ['a2', 'b2', 'c2'], ['a3', 'b3', 'c3'], ['a4', 'b4', 'c4']]
Python 3.x都有:
>>> a = [ 'a1' , 'a2' , 'a3' , 'a4' ]
>>> b = [ 'b1' , 'b2' , 'b3' , 'b4' ]
>>> c = [ 'c1' , 'c2' , 'c3' , 'c4' ]
>>>
>>> [list(t) for t in zip(a,b,c)]
[['a1', 'b1', 'c1'], ['a2', 'b2', 'c2'], ['a3', 'b3', 'c3'], ['a4', 'b4', 'c4']]
的3.x版也可以作爲預期2.X ,但我總是喜歡用map
,我很容易就可以。 2.x版本在3.x中無法正常工作的原因是因爲zip()
和map()
都被更改爲返回迭代器。
a=[1,2,3]
b=[4,5,6]
c=[7,8,8]
print zip(*[a,b,c])
[(1, 4, 7), (2, 5, 8), (3, 6, 8)]
'* [a,b,c]'是什麼?......只要正常輸入就可以了? :P –
zip(* [a,b,c])與zip(a,b,c)相同。 – guettli
@Guetti我知道這一點 - 讓我改述 - 爲什麼你會建議創建一個列表並通過zip(a,b,c)'解壓縮它? –
也許內置函數[zip](http://docs.python.org/3/library/functions.html?highlight=zip#zip)對你很有用。 – Kevin
這是什麼Python版本? – arshajii
那些'a1','a2'等是什麼?你真的有12個變量與這些名字躺在?或者你想要字符串「a1」,「a2」,...? – abarnert