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

Python列表编码练习:嵌套函数中如何三次重复执行相同操作

Python列表三次追加求和问题修复

需求说明

编写Python函数实现以下逻辑:

  • 接收一个列表作为输入
  • 计算列表最后两个元素的和,将结果追加到列表末尾
  • 基于追加后的新列表,重复上述求和追加操作,总共完成3次追加
  • 返回最终处理完成的列表

现存问题

当前编写的代码运行后仅完成1次追加,调用print(append_sum([1, 1, 2]))仅得到输出[1, 1, 2, 3],无法完成三次追加的预期需求。
当前错误代码如下:

#This section adds the last two numbers together and appends to lst
  lst.append(lst[-1] + lst[-2])
  return lst

#I tried doing this but it produced the exact same result
  lst.append(lst[-1] + lst[-2])
  return lst
  lst.append(lst[-1] + lst[-2])
  return lst

#Uncomment the line below when your function is done
print(append_sum([1, 1, 2]))

#After I run the code I get
[1, 1, 2, 3]

错误原因

Python函数执行到return语句时会立刻终止运行,将结果返回给调用方,return语句之后的所有代码都不会被执行。上述代码在第一次append操作后就写了return,后面两次追加的逻辑完全没有执行机会,因此只会追加1个元素。

正确实现

写法1:顺序执行三次追加(逻辑直观)

把所有append操作放在return之前,所有追加操作完成后再统一返回结果:

def append_sum(lst):
    # 第一次追加
    lst.append(lst[-1] + lst[-2])
    # 第二次追加,基于第一次追加后的新列表计算
    lst.append(lst[-1] + lst[-2])
    # 第三次追加,基于第二次追加后的新列表计算
    lst.append(lst[-1] + lst[-2])
    return lst

print(append_sum([1, 1, 2]))
# 运行输出:[1, 1, 2, 3, 5, 8]

写法2:循环实现(更易维护)

如果后续需要调整追加次数,直接修改循环范围即可,不用重复写相同代码:

def append_sum(lst):
    # 重复执行3次追加操作
    for _ in range(3):
        lst.append(lst[-1] + lst[-2])
    return lst

print(append_sum([1, 1, 2]))
# 运行输出:[1, 1, 2, 3, 5, 8]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 07:21:56