首页 > 解决方案 > 如何在实际运行值的命令之前使用字典中的值

问题描述

我正在为井字游戏编写代码并且有点卡住了!用户输入一个位置,如果输入的位置为空(其位置有一个数字),我想将数字更改为 X 或 O。

在下面的代码中,我创建了一个字典,其中的键代表棋盘上的位置。

我可以调用字典中键值的内容而不是实际值吗?例如,如果输入为 0,我想使用 'display_list[0][0]' 而不是 display_list[0][0] 的值,在这种情况下为 0。

row_1 = [0,1,2]
row_2 = [3,4,5]
row_3 = [6,7,8]
display_list = [row_1, row_2, row_3]

def valid_position():
    positions = {'0':display_list[0][0],
                 '1':display_list[0][1],
                 '2':display_list[0][2],
                 '3':display_list[1][0],
                 '4':display_list[1][1],
                 '5':display_list[1][2],
                 '6':display_list[2][0],
                 '7':display_list[2][1],
                 '8':display_list[2][2]
                }
    x = str(user_input())      # This is a user input from 0-8

    if x == str(positions[x]):
        display_list[..][..] = 'X'

谢谢

标签: pythondictionarytic-tac-toe

解决方案


如果你想去,你可以添加另一个字典来获得你想要的输出,比如:

    positions_labels = {'0':'display_list[0][0]',
                 '1':'display_list[0][1]',
                 '2':'display_list[0][2]',
                 '3':'display_list[1][0]',
                 '4':'display_list[1][1]',
                 '5':'display_list[1][2]',
                 '6':'display_list[2][0]',
                 '7':'display_list[2][1]',
                 '8':'display_list[2][2]'
                }

所以无论你想使用位置positions_labels[x]

添加评论: 如果您想评估字符串内容(获取其值),您可以像在链接中那样做

如何评估以字符串形式给出的数学表达式?


推荐阅读