Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > Как найти пересечение интервалов списка словарей?


Автор: martin88 7.12.2015, 13:49
Пример списка:

Код

[
{'start': 10, 'end': 20}, 
{'start': 5, 'end': 15}, 
{'start': 12, 'end': 15}, 
{'start': 25, 'end': 30}, # эти значения словаря не пересекаются с предыдущими
]


Как найти кол-во пересечений значений start и end ?
То есть в данном случае 3 пересечения (первые 3 словаря в списке )


Автор: Garmahis 8.12.2015, 15:16
ну если назвать первый интервал a а второй b то они пересекаются если a.start <= b.end AND a.end >= b.start

Автор: wecandoit 3.2.2016, 06:47
Код

In [1]: set(range(10,21)) & set(range(5, 16)) & set(range(12, 16))
Out[1]: {12, 13, 14, 15}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)