【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))

效果展示:

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

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

你可能感兴趣的:(pyhon基础,python,list,排序算法)