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

如何实现str2list函数将含括号的字符串转换为嵌套列表?

实现思路

这类嵌套结构的解析适合用栈结构处理,核心逻辑是通过栈维护当前所在的列表层级:

  • 初始化栈,栈底放一个根容器列表,始终操作栈顶的列表作为当前层级的列表
  • 遍历输入字符串的每个字符:
    • 遇到[:新建空列表,添加到当前层级的列表中,再将这个新列表压入栈,后续操作就针对这个新的子列表
    • 遇到]:弹出栈顶元素,退回上一层列表,后续操作回到上一层的列表
    • 遇到字母:直接添加到当前层级的列表中
  • 最终返回根容器列表的第一个元素就是转换结果
完整实现代码
def str2list(s):
    stack = [[]]
    for char in s:
        if char == '[':
            # 新建子列表,加入当前层,压栈
            new_list = []
            stack[-1].append(new_list)
            stack.append(new_list)
        elif char == ']':
            # 弹出当前层,回到上一层
            stack.pop()
        else:
            # 字母直接加入当前层
            stack[-1].append(char)
    # 返回根列表的第一个元素
    return stack[0][0]
测试验证
  • 执行str2list('[abc]'),返回结果为['a', 'b', 'c'],符合预期
  • 执行str2list('[a[bc]]'),返回结果为['a', ['b', 'c']],符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:15:00