我想将数组拆分为子数组。原始数据为:
['4 2','1 4','1 4']
['4 1','4 1','3 1']
['3','2','1']
我想要得到的结果是:
['4','1','1']
['2','4','4']
['4','4','3']
['1','1','1']
['3','2','1']
所以我的代码是:
raw = [['4 2','1 4','1 4'],['4 1','4 1','3 1'],['3','2','1']]
newraw =[]
for item in raw:
#print item
numberOfRow = len(item[0].split(" "))
temp = np.empty((numberOfRow,5))
for i in range(len(item)):
test = item[i].split(" ")
for j in range(len(test)):
temp[j,i]=test[j]
for it in temp:
newraw.append(it)
print newraw
当我print newraw时,我发现问题:(1),结果包含非整数,(2)结果包含[array([...]).. .,但我不知道为什么。
那么有什么解决办法,或者有什么简单的方法可以得到我想要的结果吗?谢谢~
请您参考如下方法:
难道就不能这样吗?
x = [['4 2','1 4','1 4'],
['4 1','4 1','3 1'],
['3','2','1']]
res = []
for i in x:
res.extend(map(list, zip(*(j.split(" ") for j in i))))
如果您不介意拥有元组的列表,您可能会丢失map调用。此外,我不确定您的意思是不是要将所有值转换为整数。您的示例输出没有显示这一点,所以我认为您不需要。
输出:
[['4', '1', '1'], ['2', '4', '4'], ['4', '4', '3'], ['1', '1', '1'], ['3', '2', '1']]
