我有一个深度嵌套的字典,其结构类似于:
{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]]}}}
其中键“内部”可能在“中”和“外部”的不同值上多次出现,而“范围或值”是诸如“ 1-5”或“ 10”之类的实际值的替代物(值是字符串)。
我想做的是找到最里面的列表,其中“范围或值”的值在“内部”键的每个特定值内相交(即使它们被分成多个“中间”或“值”外部”),然后将包含重叠值的列表移到结构相同的单独字典中,这样就不会有单个词典包含重叠值。我也想对任意数量的新词典进行递归操作。因此,一旦我将重叠部分从第一本词典移到新词典后,我便会检查新词典是否存在重叠,然后将找到的所有词典移至第三本词典,依此类推。
就像,如果'range1'和'range3'重叠,并且'range2'和'range4'重叠,我将得到两个字典,其中一个包含'range1'和'range2'列表,另一个包含“ range3”和“ range4”列表。
如果'range1','range2'和'range3'重叠,那么我将首先获得两个字典,一个包含'range1'和'range4'列表,另一个包含'range2'和'range3'列表。然后在递归之后,将第二个字典拆分,最后得到三个字典,一个字典包含“ range1”和“ range4”,每个字典分别包含“ range2”和“ range3”。
有什么办法可以做到这一点?如果这个解释不清楚,我很抱歉。结构有点复杂,我不知道该怎么做。