现在我有一个这样的清单:
list1 = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 1, 2, 3],
[4, 5, 6, None]
]然后定义一个函数:
def thefunction(position: tuple[int, int], board: Board) -> bool:现在我希望这个函数返回一个bool值,如果给定的(行,列)位置为"None",返回True,否则,返回False
thefunction((0,0), list1)
False
thefunction((3,3), list1)
True遇到的问题是,我不知道如何对列表的(行、列)信息进行比较,然后输出bool值。
发布于 2022-08-09 11:22:15
尝试使用tuple[int, ...]作为您的位置提示类型:
from typing import Optional
def is_none(position: tuple[int, ...], board: list[list[Optional[int]]]) -> bool:
if not len(board) or not all(len(row) == len(board) for row in board):
raise ValueError('Invalid board, must be square.')
board_rows, board_cols = len(board), len(board[0])
if len(position) != 2:
raise ValueError('Position must have exactly two values.')
row, col = position
if 0 <= row < board_rows and 0 <= col < board_cols:
return board[row][col] is None
raise ValueError('Position must be on board.')
def main() -> None:
board = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 1, 2, 3],
[4, 5, 6, None],
]
print(is_none((0, 0), board))
print(is_none((3, 3), board))
if __name__ == '__main__':
main()输出:
False
Truehttps://stackoverflow.com/questions/73290685
复制相似问题