0

所以我有一个列表,其中包含多个列表,代表坐标之类的东西。就我而言,它们是棋盘上的位置。列表看起来像这样:[(3, 3), (4, 3), (5, 3), (6, 3), (3, 4), (4, 4), (5, 4) , (6, 4), (3, 5), (4, 5)] 这只是一个例子。我的问题是,我需要检查这些坐标中的任何一个是否超出一定范围,例如在棋盘上,例如 1-8。不幸的是,我只能让 all() 命令处理一个只包含数字的列表,而不是一个包含数字列表的列表。

4

2 回答 2

1

然后遍历每个单独的坐标

>>> coords = [(3, 3), (4, 3), (5, 3), (6, 3), (3, 4), (4, 4), (5, 4), (6, 4), (3, 5), (4, 5)]
>>> all(1 <= c <= 8 for coord in coords for c in coord)
True

让我们尝试两种坐标超出范围的情况:

>>> coords = [(3, 3), (4, 3), (5, 3), (6, 3), (3, 4), (0, 5),  (4, 4), (5, 4), (6, 4), (3, 5), (4, 5)]
>>> all(1 <= c <= 8 for coord in coords for c in coord)
False
>>> coords = [(3, 3), (4, 3), (5, 3), (6, 3), (4, 88), (3, 4), (4, 4), (5, 4), (6, 4), (3, 5), (4, 5)]
>>> all(1 <= c <= 8 for coord in coords for c in coord)
False
于 2017-02-06T19:11:09.407 回答
-1

您可以导入 numpy 模块并使用函数 max

import numpy as np

>>> l =np.array([(3, 3), (4, 3), (5, 3), (6, 3), (3, 4), (4, 4), (5, 4), (6, 4), (3, 5), (4, 5)])

>>> l.max()
6
于 2017-02-06T18:56:28.903 回答