Skip to main content
 首页 » 编程设计

python之为什么split的结果中有一个 "array" (Python)

2025年05月04日9傻小

我想将数组拆分为子数组。原始数据为:

['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']]