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

如何将嵌套字典形式的棋盘转换为唯一固定数值?(Minimax算法场景)

优化棋盘状态的存储方案

你的棋盘是嵌套字典结构,完全没必要用手动字符串替换这种繁琐操作,Python内置的json模块就能优雅解决问题——既能快速把棋盘序列化保存到文件,又能轻松读取还原,完美适配你的Minimax算法测试需求。

保存棋盘到文件

用json.dump()直接将字典写入文件,代码简洁且可读性强:

import json

rows = {
    4:{1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},
    3:{1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},
    2:{1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},
    1:{1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},
}

# 保存到JSON文件
with open("board_state.json", "w") as f:
    json.dump(rows, f, indent=4)

运行后生成的board_state.json是结构化文本,既能直接查看棋盘状态,也方便后续调试。

从文件读取还原棋盘

需要复用棋盘时,用json.load()直接还原成字典,仅需处理JSON默认转成字符串的键:

import json

# 读取文件还原棋盘
with open("board_state.json", "r") as f:
    rows = json.load(f)

# 将JSON读取后的字符串键转换为整数(匹配原棋盘的键类型)
rows = {int(row_id): {int(col_id): val for col_id, val in cols.items()} 
        for row_id, cols in rows.items()}

相比原方法的优势

  • 代码逻辑清晰,避免手动字符串替换这类易出错的操作
  • 保存的是结构化数据,后续修改棋盘规则或扩展结构时无需大幅改动代码
  • 兼顾可读性和易用性,测试时能快速确认棋盘状态

如果对序列化性能有极高要求,还可以用Python专用的pickle模块(保存二进制文件,速度更快),但对于Minimax测试场景,json的易用性和可读性完全足够。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:50:20