如何基于用户输入坐标替换6×3矩阵中指定位置的字符?
解决方案
你现在的代码只是直接打印字符,没把矩阵存储起来,没法修改指定位置。得先把矩阵用二维列表存起来,再处理用户输入的坐标替换,具体步骤如下:
- 先创建3行6列的二维列表,每个元素初始为
'O' - 获取用户输入的坐标,拆分出行和列的数值
- 把对应位置的元素替换成
'+'(注意:用户输入的坐标是从1开始计数的,而Python列表索引从0开始,所以要各减1来匹配) - 最后遍历列表打印出矩阵
修改后的代码:
# 创建3行6列的矩阵,初始值都是'O' matrix = [['O' for _ in range(6)] for _ in range(3)] # 获取用户输入的坐标,格式比如"2,3" user_input = input("请输入坐标(格式:行,列):") row, col = map(int, user_input.split(',')) # 转换为列表索引(用户输入是1开始,索引从0开始) matrix[row-1][col-1] = '+' # 打印矩阵 for line in matrix: print(' '.join(line))
测试输入2,3,输出结果和你预期一致:
O O O O O O
O O + O O O
O O O O O O
关键部分说明:
- 用嵌套列表推导式创建二维矩阵,这样每个位置的元素都能单独修改
split(',')把输入的字符串按逗号拆分,map(int, ...)把拆分后的内容转成整数- 因为用户说的第2行对应列表的索引1,第3列对应索引2,所以必须做减1的索引转换才能定位到正确位置
内容的提问来源于stack exchange,提问作者Lévai Tomi
相关产品推荐
相关产品推荐

