2016-04-26 24 views
0

这是我的第一篇文章,也是编程新手,所以我很抱歉如果我在这里做了任何严重错误的事情。Python:如何修复不返回数组的数组?

我想创建一个函数,它接受一个数组并返回一个数组数组,每个数组的内部数组的长度是两个(或三个)。 (即[1,2,3,4,5]返回[[1,2],[3,4,5]])

这是我的代码:

def split(array): 
    newArray = [] 
    if len(array[0]) == 2: 
     return array 

    for i in range(len(array)): 
     newArray.append(array[i][:len(array[i])//2]) 
     newArray.append(array[i][len(array[i])//2:]) 

    split(newArray) 

array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
print(split([array])) 

当我运行它一切正常,直到return语句返回None,不打印任何东西(我能够使用PyCharm的调试器查明问题)。

返回数组数组有问题吗?

+2

“返回无” ......你不'return'新的数组。 – TigerhawkT3

回答

2

你在你的函数的末尾缺少一个return语句:

def split(array): 
    newArray = [] 
    if len(array[0]) == 2: 
     return array 

    for i in range(len(array)): 
     newArray.append(array[i][:len(array[i])//2]) 
     newArray.append(array[i][len(array[i])//2:]) 

    return split(newArray) # return this 

array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
print(split([array])) 

>>> [[1, 2], [3, 4, 5], [6, 7], [8, 9, 10]]