首页 > 解决方案 > 我一直在 'int' 对象中运行不可下标( board[random_coord[0],random_coord[1]] = 'O' )

问题描述

import random

#creating board
board = []

for canvas in range(0,3):
    board.append(["H"] * 3)

#print board function
def print_board(board):
    for row in board:
        print (" ".join(row))

coord = [ [0, 0],[0,1],[0,2],
          [1, 0],[1,1],[1,2],
          [2, 0],[2,1],[2,2] ]
   
col = int(input("Chose a column: ")) - 1
row = int(input("Chose a row: ")) - 1
    
#bot chose col and row
if [col,row] in coord:
    coord.remove([col,row])
random_coord = random.randint(0, len(coord) - 1)
    
board[random_coord[0],random_coord[1]] = 'O'

print(random_coord)
print(coord)

line board[random_coord[0],random_coord[1]] = 'O' keep running in 'int' object is not subscriptable

标签: python

解决方案


尝试这个:

board[random.randint(0, len(coord[0]))][random.randint(0, len(coord[0]))] = 'O'

或者,如果您只想随机获得一个,请尝试以下操作:

random_coord = random.randint(0, len(coord[0]))
board[random_coord][random_coord] = 'O'

如果您想访问这样的二维列表,arr[row,col]您需要使用numpy并转换listnumpy.array如下所示:

import numpy as np
board = np.array(board)
random_coord = random.randint(0, len(coord[0]))
board[random_coord,random_coord] = 'O'
print(board)

[['H' 'H' 'H']
 ['H' 'H' 'H']
 ['H' 'H' 'O']]

推荐阅读