python - 我一直在 '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
解决方案
尝试这个:
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
并转换list
为numpy.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']]
推荐阅读
- json - 如何使用 Lag 确定日期之间超过 3 天的间隔来获取上一行的日期?
- c# - 从 Dijkstra 算法 C# 的点符号输入解析图形
- php - WooCommerce 模板文件的奇怪问题 - 无法从代码中删除 DIV
- vue.js - 如何使用 Cypress 端到端快照测试来测试 Vue 单文件组件
- html - 将 CSS 类合并到一个自定义类中
- r - R:distHaversine 函数未提供预期结果
- puppeteer - 需要在目录中显示页码
- r - 在 R 中选择每列的最高值
- python - 如何找到数据集中所有点到第 k 个最近邻的距离
- php - php从输入插入mysql变量值