【发布时间】:2018-11-16 23:49:54
【问题描述】:
我的任务是使用递归构建代码。任务是获取一个可以在其中包含无限数量列表的列表并将其变成一个列表。
这是我目前所拥有的:
def flat_list(array):
new_array =[]
for i in range(0,len(array)):
if len(str(array[i])) > 1:
flat_list(array[i:i+1])
else:
new_array += array[i:len(str(array))-1]
return new_array
这些是它需要通过的测试:
assert flat_list([1, 2, 3]) == [1, 2, 3]
assert flat_list([1, [2, 2, 2], 4]) == [1, 2, 2, 2, 4]
assert flat_list([[[2]], [4, [5, 6, [6], 6, 6, 6], 7]]) == [2, 4, 5, 6, 6, 6, 6, 6, 7]
assert flat_list([-1, [1, [-2], 1], -1]) == [-1, 1, -2, 1, -1]
我的返回这个:
flat_list([1, [2, 2, 2], 4])
my result: [1,[2,2,2],4]
right answer: [1,2,2,2,4]
我认为我的问题是在每个条目处创建 new_array 的新局部变量,如何返回一个列表,其中没有其他列表?
这个任务没有使用 numpy,但如果你也可以告诉我如何使用 numpy 完成它,它真的会教育我。 :) 谢谢你的回答
【问题讨论】:
标签: python-3.x list multidimensional-array