У меня есть глубоко вложенный словарь со структурой типа:
{outer: {mid: {inner: [int, int, ['range1 or value1', other stuff], ['range2 or value2', other stuff], ['range3 or value3', other stuff], ['range4 or value4', other stuff]]}}}
, где ключ «внутренний» может появляться несколько раз при разных значениях «средний» и «внешний», а также «диапазон»or value 'является заменой для фактического значения, такого как' 1-5 'или' 10 '(значения являются строками).
Что я хотел бы сделать, так это найти самые внутренние списки, в которых значения'диапазон или значение пересекаются с каждым конкретным значением «внутреннего» ключа (даже если они разбиты на несколько значений «средний» или «внешний») и перемещают списки, содержащие перекрывающиеся значения, в отдельные словари с одинаковой структурой,так что ни один словарь не содержит перекрывающихся значений.Я также хотел бы сделать это рекурсивно для произвольного числа новых словарей.Поэтому, когда я перемещал перекрытия из первого словаря в новый словарь, я проверял новый словарь на совпадения и перемещал все найденные слова в третий словарь и т. Д.
Так что, если 'range1перекрытия 'и' range3 'и перекрытия' range2 'и' range4 ', в итоге я получу два словаря, один из которых содержит списки range1 и range2, а другой - range3 и range4lists.
Если диапазоны range1, range2 и range3 перекрываются, то сначала я получу два словаря, один из которых содержит списки range1 и range4, а другой - range2списки 'и' range3 '.Затем, после рекурсии, второй дикт будет разделен, и я получу три словаря, один из которых содержит «range1» и «range4», а другой - «range2» и «range3» соответственно.
Есть ли способ сделать это?Мне очень жаль, если это объяснение не ясно.Структура немного сложная, и я понятия не имею, как это сделать.