把相邻的连续整数合并成一个区间

用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]}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容