У меня есть список питов int, a
. У меня также есть другой список, b
, который является кортежем из 2 значений (c, d)
. Мне нужно выяснить, имеют ли какие-либо элементы a
значения, которые находятся между любыми элементами кортежа b
.Python - применить условную функцию (пересечение) к каждому элементу списка
I думаю есть способ сделать это используя map()
, но я не могу понять, как передать значения моего списка кортежей.
Например, моя структура данных выглядит следующим образом:
a = [1, 2, 3, 4, 5, 6, 7]
b = [(12,14), (54, 78), (2,3), (9,11)]
Я пытаюсь выяснить, если какие-либо из элементов a
имеет значение между любым из кортежа элементов b
. В приведенном выше случае 2
и 3
(от a
) находятся внутри (включительно) кортежа (2,3)
в b
. Поэтому мой последний ответ будет True
.
Есть ли у кого-нибудь идеи, как это сделать в исполнении? Прямо сейчас, я перебираю каждый элемент из a
, а затем перебираю каждый элемент из b
. Это нормально для небольших объемов данных, но мои массивы довольно велики, и этот шаг подходит к концу.
Я не думаю, что это будет способ сделать это для произвольных данных, не зацикливая на все.Вы можете попытаться выполнить оптимизацию, например, препроцессор «b», чтобы найти общий макс и минус, а затем исключить значения из 'a', которые находятся за пределами этого диапазона, но будет ли это улучшаться, зависит от того, что такое данные. – BrenBarn
Может ли кортеж в 'b' перекрываться? то есть 'b = [(1, 5), (3, 7)]' возможно? Иными словами, вы ожидаете, что будет один кортеж, определяющий диапазон, в котором '' 'находится внутри, или может быть несколько? – Stuart
Также являются значениями всех целых чисел в определенном диапазоне? – Stuart