How can I clear a list of segments from nested segments (Python)
Question:
My respect, colleagues.
I have a list of segments which may include nested segments that should be deleted.
For example we have a list (or maybe other data structure) of tuples:
[(50, 60), (10, 20), (10, 40), (40, 60), (60, 80), (75, 95), (95, 100)]
Or maybe list of ranges:
[range(50, 60), range(10, 20), range(10, 40), range(40, 60), range(60, 80), range(75, 95), range(95, 100)]
The result should be:
[(10, 40), (40, 60), (60, 80), (75, 95), (95, 100)]
And I must delete all nested segments.
In addition, I am not allowed to use any libraries or even import
‘s.
Actually, I’m confused, so I’ll be very grateful for any help.
Answers:
For each segment, you check if it is nested in one the others segments. If it is, you use the remove
function.
segments = [(10, 40), (40, 60), (60, 80), (75, 95), (95, 100)]
segments_copy = segments.copy()
for seg_1 in segments_copy:
for seg_2 in segments_copy:
if seg_1 != seg_2 and seg_1[0] >= seg_2[0] and seg_1[1] <= seg_2[1]:
segments.remove(seg_1)
My respect, colleagues.
I have a list of segments which may include nested segments that should be deleted.
For example we have a list (or maybe other data structure) of tuples:
[(50, 60), (10, 20), (10, 40), (40, 60), (60, 80), (75, 95), (95, 100)]
Or maybe list of ranges:
[range(50, 60), range(10, 20), range(10, 40), range(40, 60), range(60, 80), range(75, 95), range(95, 100)]
The result should be:
[(10, 40), (40, 60), (60, 80), (75, 95), (95, 100)]
And I must delete all nested segments.
In addition, I am not allowed to use any libraries or even import
‘s.
Actually, I’m confused, so I’ll be very grateful for any help.
For each segment, you check if it is nested in one the others segments. If it is, you use the remove
function.
segments = [(10, 40), (40, 60), (60, 80), (75, 95), (95, 100)]
segments_copy = segments.copy()
for seg_1 in segments_copy:
for seg_2 in segments_copy:
if seg_1 != seg_2 and seg_1[0] >= seg_2[0] and seg_1[1] <= seg_2[1]:
segments.remove(seg_1)