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

如何修正list_powers函数返回None的问题?实现列表元素幂运算返回新列表

问题分析与解决

你编写的list_powers函数目标是生成原列表元素指定幂次的新列表,但当前返回None,问题出在return语句的错误调用上。

原代码问题点

def list_powers(collection = [], power = 2):
    power_list = []
    
    for elem in collection:
        topower = elem ** power
        power_list.append(topower)
    return power_list.append(topower)
  • list.append()方法是原地修改列表,它的返回值固定为None,你最后返回的是这个方法的结果,而非构建好的power_list本身。
  • 额外问题:循环结束后topower是最后一个元素的计算结果,此时调用append还会把这个值重复添加一次到列表末尾,即使你想返回列表,这也是多余的错误操作。

修正后的代码

只需要把return语句改为直接返回power_list即可:

def list_powers(collection = [], power = 2):
    power_list = []
    
    for elem in collection:
        topower = elem ** power
        power_list.append(topower)
    return power_list

测试验证

运行测试代码:

list_powers([2, 4, 1, 5, 12], power = 2)

输出结果:

[4, 16, 1, 25, 144]

额外优化(可选)

如果想简化代码,也可以用列表推导式替代for循环,效果一致:

def list_powers(collection = [], power = 2):
    return [elem ** power for elem in collection]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:25:21