是什麼做的Python的方式如下:的Python:纏結兩個列表
我有兩個列表a
和相同的長度n
的b
,我想形成列表
c = [a[0], b[0], a[1], b[1], ..., a[n-1], b[n-1]]
是什麼做的Python的方式如下:的Python:纏結兩個列表
我有兩個列表a
和相同的長度n
的b
,我想形成列表
c = [a[0], b[0], a[1], b[1], ..., a[n-1], b[n-1]]
c = [item for pair in zip(a, b) for item in pair]
閱讀關於zip的文檔。
對於伊格納西奧的回答比較看這個問題:How do I convert a tuple of tuples to a one-dimensional list using list comprehension?
c = [item for t in zip(a,b) for item in t]
c = list(itertools.chain.from_iterable(itertools.izip(a, b)))
c = [item for i in zip(a,b) for item in i]
您也可以試試:
c=[(a,b)[i%2][i/2] for i in xrange(2*n)]
這當然是少可讀
這裏是另一種方式:
sum(([x,y] for (x,y) in zip(a,b)), [])
(也許不是很有效,因爲你形成兩個臨時的元組(X,Y)和臨時名單[X,Y])
這個怎麼樣(測試Python 2和3):
list(sum(zip(a, b),()))
或numpy的:
import numpy as np
np.vstack((a, b)).T.flatten().tolist()