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

如何在不使用numpy和map的情况下实现数组与整数相乘?代码求助

数组与整数相乘的问题修复方案

原代码无法得到预期结果的原因是:函数multArray内部通过列表推导式创建了新列表,并将局部变量A指向这个新列表,但这不会改变外部传入的原始列表。而测试循环中直接打印的还是未修改的原始A,没有接收函数返回的新列表。

以下是两种可行的解决方法:

方法1:接收函数返回的新列表

保持原函数的逻辑不变,修改测试代码,直接打印函数返回的计算结果:

def multArray(A, k):
    A = [i * k for i in A]
    return A

# 测试用例
tests = (([5,12,31,7,25],10), 
         ([-5,12,-31,7,25],10),
         ([-5,12,-31,7,25],-1),
         ([-5,12,-31,7,25],0),
         ([],10),
         ([],-1))

# 打印函数返回的计算结果
for (A,k) in tests: 
    print(multArray(A, k))

方法2:原地修改原始列表

如果需要直接修改传入的列表(不创建新列表),可以修改函数逻辑,通过索引遍历原地更新每个元素:

def multArray(A, k):
    for i in range(len(A)):
        A[i] *= k

# 测试用例
tests = (([5,12,31,7,25],10), 
         ([-5,12,-31,7,25],10),
         ([-5,12,-31,7,25],-1),
         ([-5,12,-31,7,25],0),
         ([],10),
         ([],-1))

# 调用函数后直接打印已修改的原列表
for (A,k) in tests: 
    multArray(A, k)
    print(A)

两种方法都能输出预期结果:
[50, 120, 310, 70, 250], [-50, 120, -310, 70, 250], [5, -12, 31, -7, -25], [0, 0, 0, 0, 0], [], []

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:50:29