Проверка, находятся ли числа в списке в списке в определенном диапазоне

Итак, у меня есть список с несколькими списками, которые представляют собой что-то вроде координат. В моем случае это позиции на шахматной доске. Список будет выглядеть примерно так: [(3, 3), (4, 3), (5, 3), (6, 3), (3, 4), (4, 4), (5, 4), (6, 4), (3, 5), (4, 5)] Это всего лишь пример. Моя проблема в том, что мне нужно проверить, находятся ли какие-либо из этих координат вне определенного диапазона, на шахматной доске, например, 1-8. К сожалению, я мог заставить команду all () работать только со списком, состоящим из цифр, а не со списком чисел.

2 ответа

Затем выполните итерацию по каждой из отдельных координат:

>>> 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

Вы можете импортировать модуль 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
Другие вопросы по тегам