【Python小技巧】python从数字列表中提取出指定长度的连续数字片段

问题描述:

在处理一堆数据列表问题是遇到了一个小难题,就是如何从一串不固定长度的数字元素列表中提取出指定连续长度的元素片段呢?

例如:

'''我们想对下面这个列表:
    1、将连续的数字片段提取出来
    2、指定连续的片段长度,例如我想把满足3个元素连续或者4个元素连续的片段提取出来'''
num_list = [1, 2, 4, 5, 6, 7, 14, 15, 17, 18, 19, 31, 32, 33, 34, 46, 48, 78, 90, 112, 113, 114, 160, 432]

解决措施:

def continusFind(num_list):
    num_list.sort()
    s = 1
    find_list = []
    have_list = []
    while s <= len(num_list) - 1:
        if num_list[s] - num_list[s - 1] == 1:
            flag = s - 1
            while num_list[s] - num_list[s - 1] == 1:
                s += 1
                #判断是否为连续的3连号或者4连号或者5连号的连续片段
                if len(num_list[flag:s])==3 or len(num_list[flag:s])==4 or len(num_list[flag:s])==5:
                    find_list.append(num_list[flag:s])
                    have_list += num_list[flag:s]
        else:
            s += 1
    return find_list

num_list = [1, 2, 4, 5, 6, 7, 14, 15, 17, 18, 19, 31, 32, 33, 34, 46, 48, 78, 90, 112, 113, 114, 160, 432]

print(continusFind(num_list))

效果展示:

在这里插入图片描述

成功将指定长度的连续片段取出!

猜你喜欢

转载自blog.csdn.net/qq_45193872/article/details/123995664