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

计算器BODMAS逻辑开发:括号配对字典键值格式异常求助

问题原因与修复方案

你代码里的核心错误是用了集合字面量而非字典字面量:

  • 你写的{"ob_"+str(ob),index}是创建集合(元素间用逗号分隔),集合是无序的元素集合,所以会出现{0, 'ob_1'}这种键值顺序混乱的结果。
  • 而你需要的键值对结构是字典,必须用冒号:分隔键和值,比如{"ob_"+str(ob): index}。

另外注意初始的ob和cb要从1开始,才能匹配你预期的ob_1、cb_1命名格式。

修正后的代码

b_pairs = []
ob = 1
cb = 1
index = 0
expression_list = ['(', '1', '+', '(', '1', '+', '1', ')', ')']

for term in expression_list:
    if term == '(':
        b_pairs.append({"ob_"+str(ob): index})
        ob += 1
    elif term == ')':
        b_pairs.append({"cb_"+str(cb): index})
        cb += 1
    index += 1

print(b_pairs)
# 输出结果完全符合预期: [{'ob_1': 0}, {'ob_2': 3}, {'cb_1': 7}, {'cb_2': 8}]

补充说明

Python 3.7及以上版本的字典会保留插入顺序,所以修正后不仅键值关系正确,顺序也会和你预期的一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 04:52:37