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

修复mock_function函数:实现数组元素按条件平方/立方并返回数组

问题分析与修复方案

原代码的核心错误

  • else分支里的return mock_answer直接终止了函数:第一次遇到≤5的元素(数组中的4)就直接返回,循环根本没机会处理后续元素。
  • 没有将每个处理后的元素加入列表,反而最后调用empty_list.append(mock_answer)——但append方法返回的是None,而且只添加了最后一个处理的元素,完全不符合需求。

修复后的循环版本(兼容普通列表和numpy数组)

import numpy as np

def mock_function(x):
    result_list = []
    for i in x:
        if i > 5:
            processed = i ** 2
        else:
            processed = i ** 3
        result_list.append(processed)  # 每个元素处理完就加入结果列表
    return result_list

x = np.array([7,4,1,10,3,6])
print(mock_function(x))  # 输出: [49, 64, 1, 100, 27, 36]

更高效的numpy向量化版本(适合numpy数组输入)

如果输入是numpy数组,用向量化操作比循环更快,代码也更简洁:

import numpy as np

def mock_function(x):
    return np.where(x > 5, x ** 2, x ** 3)

x = np.array([7,4,1,10,3,6])
print(mock_function(x))  # 输出: [ 49  64   1 100  27  36]

内容的提问来源于stack exchange,提问作者TempAcc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 21:12:43