Python使用for循环计算列表元素值仅返回首项如何解决
问题核心错误点
return语句缩进错误,当前放在for循环内部,第一次循环执行结束就会直接返回,不会遍历完所有元素,这是你只拿到第一个元素计算结果的核心原因- 直接修改传入的原列表
a,且列表属于Python可变对象,lis.append(a)追加的是列表引用,后续修改a的元素会导致之前存入lis的内容同步变化 - 同时使用
for x in range(...)和手动维护变量i,功能重复,属于冗余代码 - 你预期的是所有元素计算完成后返回一个嵌套列表,但当前代码每次循环都会把
a追加到lis,不符合输出格式要求
修正后代码
def calculate_f(a): # 创建新列表存储计算结果,避免修改原列表 calculated = [] for num in a: calculated.append(3 * (num ** 2) + num + 5) # 返回符合你要求的嵌套列表结构 return [calculated] a = [3,4,1] output = calculate_f(a) print(output)
运行后输出结果为[[35, 57, 9]],完全符合你的预期。
内容的提问来源于stack exchange,提问作者janoshz
相关产品推荐
相关产品推荐

