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

如何对嵌套列表使用递归实现加减乘除四则运算?

嵌套列表四则运算的递归实现方案

核心思路

  • 所有嵌套的子列表本质上都是待求值的子表达式,运算前先递归计算所有子表达式得到纯数值,再执行当前层级的运算即可
  • 运算顺序天然符合嵌套层级的优先级:越深的子列表越先被计算

代码实现(Python)

def calc(expr):
    # 当前元素不是列表,说明是普通数值,直接返回
    if not isinstance(expr, list):
        return expr
    # 递归求值两个操作数,不管是数值还是嵌套列表,都能得到最终数值
    op, num1, num2 = expr[0], calc(expr[1]), calc(expr[2])
    if op == 'add':
        return num1 + num2
    elif op == 'sub':
        return num1 - num2
    elif op == 'mul':
        return num1 * num2
    elif op == 'div':
        # 可根据需求调整为整数除//或者浮点数除/
        return num1 / num2
    else:
        raise ValueError(f"不支持的操作符:{op}")

测试示例

# 单层运算测试
print(calc(['add', 12, 12])) # 输出 24

# 两层嵌套测试
print(calc(['add', 12, ['add', 12, 12]])) # 输出 36

# 三层嵌套测试
print(calc(['add', 12, ['mul', 6, ['sub', 6, 4]]])) # 输出 12 + 6*(6-4) = 24

扩展说明

如果后续需要增加更多操作符(比如取余mod、幂运算pow等),只需要在判断分支中新增对应运算逻辑即可,不需要修改递归部分的代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:06:00