有人可以向我解释错误以及我的错误在哪里吗?我得到TypeError: 'function' object is not subscriptable
以下行:
row = random.choice(get_the_valid_locations[-2])
这是get_the_valid_locations函数:
def get_the_valid_locations(board):
valid_locations = []
for col in range(COLS_OF_BOARD):
for row in range(ROWS_OF_BOARD):
if available_square(board, row, col):
valid_locations.extend([row, col])
return valid_locations
get_the_valid_locations[-2]
是int
(我检查过)。
如果您需要更多代码,请要求它!
给出错误的行有一个小错误。
现在,您尝试采用函数的倒数第二个元素,但是我认为您-2
应该将该函数作为参数。
在这种情况下,该行应为:
row = random.choice(get_the_valid_locations(-2))
然后row
将包含来自函数输出的随机元素。
编辑
一条评论(信用:buran)指出,该函数需要2d数组,在这种情况下,我认为您的意思很好,但实现错误。您希望输出是一个colums数组和一个行数组。您的语句将用于选择函数返回的行的随机值。
您可以这样做:
def get_the_valid_locations(board):
valid_rows = []
valid_columns = []
for col in range(COLS_OF_BOARD):
for row in range(ROWS_OF_BOARD):
if available_square(board, row, col):
valid_rows.append(row)
valid_columns.append(col)
return [valid_rows, valid_columns]
用法:
randomRow = random.choice(get_the_valid_locations(board)[0])
要么
randomColumn = random.choice(get_the_valid_locations(board)[1])
row = random.choice(get_the_valid_locations(board))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句