【python】找出一个列表中的连续数字和非连续数字--最简解法

使用python找出一个列表中的连续数字和非连续数字,个人认为最简解法

from itertools import groupby

lst = [1,2,3,4,5,6,7, 8, 11, 12, 13, 19,23]    # 连续数字

fun = lambda x: x[1]-x[0]
for k, g in groupby(enumerate(lst), fun):
    # print(g)
    # for a in g:
    #     print(k)
    #     print(a)
    l1 = [j for i, j in g]    # 连续数字的列表
    print(l1)
    if len(l1) > 1:
        scop = str(min(l1)) + '-' + str(max(l1))    # 将连续数字范围用"-"连接
    else:
        scop = l1[0]
    print("连续数字范围:{}".format(scop))

【python】找出一个列表中的连续数字和非连续数字--最简解法
https://www.diaoyc.cn//archives/%E4%BD%BF%E7%94%A8python%E6%89%BE%E5%87%BA%E5%88%97%E8%A1%A8%E4%B8%AD%E7%9A%84%E8%BF%9E%E7%BB%AD%E6%95%B0%E5%AD%97%E5%92%8C%E9%9D%9E%E8%BF%9E%E7%BB%AD%E6%95%B0%E5%AD%97
作者
Adiaoyc
发布于
2020年06月18日
许可协议