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

Python中如何修改矩阵元素,实现井字棋游戏的落位替换功能?

井字棋位置替换实现方案

问题原因

你当前的代码操作的是二维列表的行维度:pop(1)会直接删除索引为1的整行(也就是存储["4","5","6"]的第二行),再插入单个字符x自然不能实现单个位置的数值修改。

实现方法

Python中二维列表的单个元素可以通过列表[行索引][列索引]直接定位赋值,索引从0开始计数:

  • 顶部中间的字符"2"属于第1行(对应行索引0)的第2个元素(对应列索引1),直接对该位置赋值即可完成修改。

基础实现代码

tic_tac_screen = [["1", "2", "3"],
                 ["4", "5", "6"],
                 ["7", "8", "9"]]
# 直接定位到目标位置赋值
tic_tac_screen[0][1] = "x"
print(tic_tac_screen)

运行后输出结果为:
[['1', 'x', '3'], ['4', '5', '6'], ['7', '8', '9']]

通用封装方案

如果需要根据用户输入的1-9数字动态定位位置,可以封装为通用方法:

def update_tic_tac_board(board, input_pos, symbol):
    # input_pos为用户输入的1-9的位置编号,symbol为要写入的x/o
    pos = int(input_pos)
    row_index = (pos - 1) // 3
    col_index = (pos - 1) % 3
    board[row_index][col_index] = symbol
    return board

# 调用示例:将位置2替换为x
tic_tac_screen = [["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"]]
tic_tac_screen = update_tic_tac_board(tic_tac_screen, 2, "x")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:48:00