gpt4 book ai didi

python - 如何用递归分割数组

转载 作者:太空宇宙 更新时间:2023-11-03 18:18:50 25 4
gpt4 key购买 nike

嗨,我会解释我需要什么。我想使用递归获得一种将数组拆分为子数组的方法,在每个子数组的一半处划分。

我的意思是,例如,如果我有一个数组 a = [1, 2, 3, 4]

我想从中获取这个数组:h = [[1,2], [3,4], [1], [2], [3], [4]]

我正在尝试多种方法,并认为递归是最好的方法,但我不知道如何做到这一点。

最佳答案

在Python中:

>>> def split_array(array):
if len(array) <= 1:
return array
else:
return [array[:len(array)//2], array[len(array)//2:]]


>>> def halves(array):
if len(array) <= 1:
return [array]
else:
parts = split_array(array)
return [array] + halves(parts[0]) + halves(parts[1])


>>> halves([1, 2, 3, 4])
[[1, 2, 3, 4], [1, 2], [1], [2], [3, 4], [3], [4]]
>>> halves([1, 2, 3, 4])[1:]
[[1, 2], [1], [2], [3, 4], [3], [4]]

这不会按顺序生成子数组。我会为此使用迭代方法。

关于python - 如何用递归分割数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24552381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com