为了账号安全,请及时绑定邮箱和手机立即绑定

如何替换网格中的对角线条目

如何替换网格中的对角线条目

交互式爱情 2021-06-07 10:05:00
经过长时间试图解决这个难题但没有成功,我不得不寻求帮助。到目前为止,我设法使用 python 构建了网格,但在对角线上插入了一个字符串,这超出了我对语言的理解。请看我下面的代码:board = []for x in range(0,5):    board.append(["O"] * 5)print(board)def print_board(board):  for row in board:    print(" ".join(row))print_board(board)O O O O OO O O O OO O O O OO O O O OO O O O O从这里开始,我尝试逐行执行并弹出每行的最后一个,然后交替插入 x,例如。但是,我失败了:我需要得到以下结果:x O O O OO x O O OO O x O OO O O x OO O O O x
查看完整描述

3 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

为什么不只是


size = 5

board = []

for row in range(size):

    board.append(["O"]*row + ["X"] + ["O"]*(size-row-1))


查看完整回答
反对 回复 2021-06-08
?
墨色风雨

TA贡献1853条经验 获得超6个赞

如果您确定您的板是正方形,则对角线元素将是行号和列号相同的地方。您可以通过 row = board[rowNum] 访问每一行,然后 row[colNum] 将为您提供一个元素。如果 rowNum == colNum 你在对角线上。您可以像我在下面所做的那样将两者挤压在一起(board[i][i])。


注意:如果你的板子是一个列表(可变对象),在这样的函数中调用它会改变传递给 boardObject 的变量的内容,即使没有返回“boardObject”,所以请注意那个。


    def replace_diag(boardObject, replacement):

        for i in range(len(boardObject)):

             boardObject[i][i] = replacement


查看完整回答
反对 回复 2021-06-08
?
www说

TA贡献1775条经验 获得超8个赞

board = [] for x in range(0,5): board.append(["O"] * 5)

印刷(板)

def print_board(board): for i,row in enumerate(board): row[i]="X"

印刷板(板)


查看完整回答
反对 回复 2021-06-08
  • 3 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信