You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python数组分区问题替代方案实现求助:如何返回smaller数组最终值

代码调整方案

第一步:修复当前smaller数组输出问题

你现在出现的中间结果重复打印问题,是因为print(smaller)放在了循环内的append操作后,每匹配到一个符合条件的元素追加后就会执行一次打印。调整逻辑如下:

  • 将print语句挪到for循环结束之后
  • 给函数增加return语句返回最终的smaller数组
    当前阶段修正后代码:
def properArray(pivot_index, A):
    pivot = A[pivot_index]
    smaller = []
    for i in range(len(A)):
        if A[i] < pivot:
            smaller.append(A[i])
    # 循环结束后再打印/返回最终结果
    print(smaller)
    return smaller

resized_array = properArray
resized_array(3, [1,5,6,9,3,4,6])

运行后只会输出一次最终的smaller结果:[1, 5, 6, 3, 4, 6](示例中pivot是A[3]=9,所有元素都小于它)。

第二步:补全完整的重排逻辑

按照你规划的三子数组思路,后续可以补充equal、greater两个数组,最终拼接返回符合题目要求的完整结果即可,完整实现代码如下:

def properArray(pivot_index, A):
    pivot = A[pivot_index]
    smaller = []
    equal = []
    greater = []
    for num in A:
        if num < pivot:
            smaller.append(num)
        elif num == pivot:
            equal.append(num)
        else:
            greater.append(num)
    # 拼接三个子数组返回最终结果
    result = smaller + equal + greater
    print(result)
    return result

resized_array = properArray
resized_array(3, [1,5,6,9,3,4,6])

运行输出完整重排后的数组:[1, 5, 6, 3, 4, 6, 9]

内容的提问来源于stack exchange,提问作者Don_de.coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:27:05