2011-06-15 32 views

回答

5
c = [item for t in zip(a,b) for item in t] 
11
c = list(itertools.chain.from_iterable(itertools.izip(a, b))) 
1
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)] 

這當然是少可讀

1

這裏是另一種方式:

sum(([x,y] for (x,y) in zip(a,b)), []) 

(也許不是很有效,因爲你形成兩個臨時的元組(X,Y)和臨時名單[X,Y])

0

這個怎麼樣(測試Python 2和3):

list(sum(zip(a, b),())) 

或numpy的:

import numpy as np 
np.vstack((a, b)).T.flatten().tolist()