Проверка, находятся ли значения в интервале - PullRequest
1 голос
/ 17 мая 2019

У меня есть список Python, содержащий целочисленные значения.Для примера приведен следующий список:

p = [10,44,55,33]

Теперь я хотел бы проверить, попадает ли хотя бы одно из значений в списке в заданный интервал.Например, если у нас есть интервал [15,30], он ложен, потому что в этом интервале нет значения в p.Если у нас есть интервал [50,60], то это правда, потому что в этом интервале 55.

В моем списке не только 4 значения, как в примере выше, но и десятки тысяч, поэтому я ищу наиболее эффективный способсделать это.Какой самый лучший способ?

Ответы [ 4 ]

4 голосов
/ 17 мая 2019

Попробуйте использовать any с выражением генератора:

>> any(50 < e < 60 for e in p)
True

Он будет генерировать только столько проверок, пока первая из них не станет верной.

0 голосов
/ 17 мая 2019
p = [10,44,55,33]
i = [10,50]

sol = list(filter(lambda x: x in range(i[0],i[1]+1),p))
# output [10, 44, 33]
0 голосов
/ 17 мая 2019

с использованием списка

list1 = [x for x in p if x in range(50,61)]
0 голосов
/ 17 мая 2019

Лучшее, что вы можете сделать, если ваш p ​​не отсортирован, - это просмотреть каждый элемент p и проверить, находится ли он в вашем интервале.

Вы можете сделать это так:

any( interval_low <= i <= interval_high for i in p )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...