将字符串字典转换为3×3 numpy数组的技术问询
把字典转换为3×3 NumPy数组的简洁方案
我来帮你把这个字符串字典转成整洁的3×3 NumPy数组~你的原始代码用了结构化数组,其实对于这个需求来说有点复杂了,我们可以用更直接的方法来实现:
核心思路
我们只需要按照从上到下、从左到右的顺序提取字典里的对应值,再把一维数组重塑成3×3的二维数组就可以了,完全不需要结构化 dtype。
完整代码
import numpy as np # 你的原始字典 result = {'top-L': ' ', 'top-M': ' ', 'top-R': ' ', 'mid-L': ' ', 'mid-M': ' ', 'mid-R': ' ', 'low-L': ' ', 'low-M': ' ', 'low-R': ' '} # 定义键的顺序:对应3×3数组的行和列(第一行top-L/M/R,第二行mid-L/M/R,第三行low-L/M/R) key_order = ['top-L', 'top-M', 'top-R', 'mid-L', 'mid-M', 'mid-R', 'low-L', 'low-M', 'low-R'] # 提取值并转换为3×3数组 board_array = np.array([result[key] for key in key_order]).reshape(3, 3) # 打印结果验证 print(board_array)
代码解释
key_order确保我们按正确的布局顺序提取字典值,这样重塑后的数组和你字典里的位置完全对应;- 列表推导式快速提取所有值,转成NumPy数组后,
reshape(3, 3)直接把一维数组转换成3行3列的二维数组; - 不管之后字典里的内容是空格、'X'还是'O',这段代码都能正确生成对应的3×3棋盘数组。
内容的提问来源于stack exchange,提问作者user3814582
相关产品推荐
相关产品推荐

