我想将一个数组拆分成子数组.原始数据是:
['4 2','1 4','1 4']
['4 1','4 1','3 1']
['3','2','1']
Run Code Online (Sandbox Code Playgroud)
我想得到的结果是:
['4','1','1']
['2','4','4']
['4','4','3']
['1','1','1']
['3','2','1']
Run Code Online (Sandbox Code Playgroud)
所以我的代码是:
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
Run Code Online (Sandbox Code Playgroud)
当我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))))
Run Code Online (Sandbox Code Playgroud)
你可能会失去的map电话,如果你不介意具有list的tuples.此外,我不确定你是否意味着,你想将所有值转换为整数.你的示例输出没有显示这个,所以我认为你不需要.
输出:
[['4', '1', '1'], ['2', '4', '4'], ['4', '4', '3'], ['1', '1', '1'], ['3', '2', '1']]
Run Code Online (Sandbox Code Playgroud)