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

Python列表数值减半函数问题:如何适配任意输入列表?

问题分析与代码修正

你的代码存在几个关键错误,导致无法实现“将列表中数值改为原来一半”的功能,同时也没满足适配任意列表的需求:

  • 循环操作对象错误:你在循环里修改的是index变量(也就是循环的索引值),而不是列表a中的对应元素。正确的做法应该是通过索引访问列表元素并修改,比如a[index] /= 2。
  • 返回值错误:函数最后返回的是修改后的index,这完全不是你需要的处理后的列表,应该返回修改后的a。
  • 关于“适配任意列表”:函数本身已经设计成接收参数a,所以不需要在代码开头固定定义a,只要在调用函数时传入任意列表即可,比如halve_values([1,4,5,6,8,13])。

修正后的代码

def halve_values(a):
    for index in range(len(a)):
        # 修改列表对应索引的元素,而非索引本身
        a[index] /= 2
    # 返回处理后的列表
    return a

# 调用时可传入任意列表,无需提前固定定义
print(halve_values([1, 2, 3]))
print(halve_values([1, 4, 5, 6, 8, 13]))

另外,也可以用更简洁的列表推导式实现,这种方式会返回新列表,不会修改原列表:

def halve_values(a):
    return [num / 2 for num in a]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 18:55:29