gpt4 book ai didi

python - 检查索引是否在二维列表内 [Python]

转载 作者:行者123 更新时间:2023-12-02 04:15:26 24 4
gpt4 key购买 nike

我必须编写一个函数(def)来检查我编写的索引是否在二维列表内。如果是则必须返回 True,否则必须返回 False。

def height(board):
height=0
for x in board:
height+=1
return height

def width(board):
wid=len(board[0])
return wid

def on_board(board, x, y):
check=False
x1 = int(x)
y1 = int(y)
for x,y in board:
if x1 > height(board) or y1 > width(board):
check=False
else:
check=True
return check

列表看起来像这样:

board = [["V1", "V1"],
["V2", "V2"],
["V3", "V3"]]

最佳答案

最简单的方法是使用 try.. except..else,它将尝试访问板上的该位置。如果有效,则这是一个有效的位置,并且将输入 else block 。如果不是,则不是,并且将进入 except block 。作为奖励,您还可以检查 xy 是否为有效整数。这里的任何失败都会产生 False

def on_board(board, x, y):
try:
board[int(x)][int(y)]
except (ValueError, IndexError):
return False
else:
return True

此外,板的高度就是简单的def height(board): return len(board)。但是,如果您只有 height()width() 来实现 on_board(),那么您就不需要 height()width() 根本没有。

determined in chat ,检查程序的测试套件像我们一样使用 0 索引的行和列,但第一个值是列(就像图形上的 x 坐标),第二个值是行。它也不接受用户使用 -1 索引来指示最后一行/列。最后,它已经使用整数测试函数,因此无需使用 int() 进行转换。

def on_board(board, x, y):
return x in range(len(board[0])) and y in range(len(board))

这会检查 x 是否在 0(包含)和行中的列数(不包含)之间,以及 y 是否介于> 介于 0(包含)和板中的行数(不包含)之间。然后它返回 bool 值来判断这两个条件是否都为真。

关于python - 检查索引是否在二维列表内 [Python],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34088416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com