正好我写过类似的需求,给你参考一下,我是要合并范围,不是合并点
def merge_ranges(input_list):
"""
输入[[start,end],[start,end],[start,end]....]
返回[[start,end],[start,end],[start,end]....]
其中重复的范围已经被merge
"""
assert(all([isinstance(i,list) for i in input_list]))
temp=copy.deepcopy(input_list)
temp.sort(key=lambda x:x[0])
merged=[temp[0]]
for current in temp:
previous=merged[-1]
if current[0]<=previous[1]+1:
previous[1]=max(previous[1],current[1])
else:
merged.append(current)
return merged
--
FROM 171.216.89.*