用python把相邻的连续整数合并成一个区间
import sys
ints = [2,3,4,5,6, 8,9,10,11, 14,15,16,17,18, 20, 34,35, 41,42,43,44,45, 55,56, 71, 85]
dd = {}
a = [min(ints)]
tt = []
for i in range(len(ints)-1):
if ints[i+1] == ints[i] + 1 :
a.append(ints[i+1])
else:
a = [ints[i+1]]
tt.append(a)
for x in tt:
if not x[0] in dd:
dd[x[0]] = x
else:dd[x[0]] = sorted(list(set(dd[x[0]] + x)))
print(dd)
结果:
{2: [2, 3, 4, 5, 6], 8: [8, 9, 10, 11], 14: [14, 15, 16, 17, 18], 20: [20], 34: [34, 35], 41: [41, 42, 43, 44, 45], 55: [56, 55], 71: [71], 85: [85]}