您可以创建一个ndarray
具有所需的尺寸并轻松阅读您的列表。由于您的列表不完整,您必须抓住IndexError
,这可以在try / exception
block.
Using numpy.ndenumerate
允许解决方案轻松扩展到更多维度(添加更多索引i,j,k,l,m,n,...
在下面的 for 循环中):
import numpy as np
test = [ [ ["header1","header2"],
["---"],
[],
["item1","value1"] ],
[ ["header1","header2","header3"],
["item2","value2"],
["item3","value3","value4","value5"] ] ]
collector = np.empty((2,4,4),dtype='|S20')
for (i,j,k), v in np.ndenumerate( collector ):
try:
collector[i,j,k] = test[i][j][k]
except IndexError:
collector[i,j,k] = ''
print collector
#array([[['header1', 'header2', '', ''],
# ['---', '', '', ''],
# ['', '', '', ''],
# ['item1', 'value1', '', '']],
# [['header1', 'header2', 'header3', ''],
# ['item2', 'value2', '', ''],
# ['item3', 'value3', 'value4', 'value5'],
# ['', '', '', '']]], dtype='|S10')