Проверка, находятся ли числа в списке в списке в определенном диапазоне
Итак, у меня есть список с несколькими списками, которые представляют собой что-то вроде координат. В моем случае это позиции на шахматной доске. Список будет выглядеть примерно так: [(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