2014-03-01 33 views
2

转换元组(可变大小)的列表转换成阵列状的结构我有一个像元组的列表:的Python:具有固定形状

a = [(1,2,3), (4,5)] // np.shape = (2,) 

,我想它隐蔽入状结构的阵列,但固定形状,即

a = [(1,2,3), (4,5,0)] // np.shape = (2,3) 

回答

3
In [69]: maxlen=max(len(i) for i in a) #get the max length of all tuples 

In [70]: [i+(0,)*(maxlen-len(i)) for i in a] #fill each tuple with extra zeros 
Out[70]: [(1, 2, 3), (4, 5, 0)] 
2

功能的方式来做到这将是

a = [(1,2,3), (4,5), (6, 7, 8, 9)] 
from itertools import izip_longest 
print zip(*izip_longest(*a, fillvalue = 0)) 
# [(1, 2, 3, 0), (4, 5, 0, 0), (6, 7, 8, 9)]