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

Python如何将含多位数、运算符的混合字符串转为对应列表,仅用内置函数实现?

表达式拆分实现方案

你可以通过遍历字符串拼接连续数字的方式实现,全程只用Python内置语法和方法,不需要导入任何额外模块:

def split_expression(expr: str) -> list:
    result = []
    current_num = ""
    for char in expr:
        # 是数字就暂存拼接
        if char.isdigit():
            current_num += char
        else:
            # 碰到运算符先把之前攒的数字存入结果
            if current_num:
                result.append(int(current_num))
                current_num = ""
            # 存入当前运算符
            result.append(char)
    # 处理表达式末尾的数字
    if current_num:
        result.append(int(current_num))
    return result

效果测试

你可以直接用你给出的两个示例直接验证:

  • 单数字场景输入:'1-2=3^4/5
    执行代码:print(split_expression('1-2=3^4/5'))
    输出结果:[1, '-', 2, '=', 3, '^', 4, '/', 5]
  • 多位数场景输入:'12-34=56^78/90
    执行代码:print(split_expression('12-34=56^78/90'))
    输出结果:[12, '-', 34, '=', 56, '^', 78, '/', 90]

逻辑说明

实现逻辑非常好理解:

  • 初始化一个空列表存最终结果,再初始化一个空字符串暂存连续的数字字符
  • 逐个遍历表达式里的每一个字符:
    • 如果是数字就拼接到暂存的数字字符串里
    • 如果是运算符,就先把之前暂存的数字字符串转成整数存入结果列表,清空暂存字符串后再把当前运算符存入结果
  • 遍历完全部字符后,要记得把最后暂存的最后一段数字也转成整数存入结果,避免漏掉表达式末尾的数字

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:54:00