列表中连续数字寻找的问题并不是什么很新鲜的问题,在现实生活中的很多场合中都有应用,比如:给你一支股票的涨跌数据,让你找出来它上升期有哪些,下降期有哪些;给你一堆大气因子的监测数据,让你找出来连续的污染期。。。。。。等等,诸如此类的应用还有很多。
把实际业务场景里面的需求抽象出来就是本文的标题内容了,今天简单地实现了这个需求,具体如下:
#!usr/bin/env python# encoding:utf-8 """__Author__:沂水寒城功能: 列表中连续数字段寻找""" 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 find_list.append(num_list[flag:s]) have_list+=num_list[flag:s] else: s+=1 return find_list if __name__=='__main__': 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)
结果输出如下:
[[1, 2], [4, 5, 6, 7], [14, 15], [17, 18, 19], [31, 32, 33, 34], [112, 113, 114]]

3445

被折叠的 条评论
为什么被折叠?



