首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python2D列表问题

Python2D列表问题
EN

Stack Overflow用户
提问于 2022-08-09 10:58:06
回答 1查看 94关注 0票数 1

现在我有一个这样的清单:

代码语言:javascript
复制
list1 = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 1, 2, 3],
[4, 5, 6, None]
]

然后定义一个函数:

代码语言:javascript
复制
def thefunction(position: tuple[int, int], board: Board) -> bool:

现在我希望这个函数返回一个bool值,如果给定的(行,列)位置为"None",返回True,否则,返回False

代码语言:javascript
复制
thefunction((0,0), list1)
False

thefunction((3,3), list1)
True

遇到的问题是,我不知道如何对列表的(行、列)信息进行比较,然后输出bool值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-09 11:22:15

尝试使用tuple[int, ...]作为您的位置提示类型:

代码语言:javascript
复制
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()

输出:

代码语言:javascript
复制
False
True
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73290685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档