Python从List中统计连续情况

Python从List中统计连续情况

前言

虽然已经很久没写东西了,但是我一直在,这次直接分享在工作中写一个小工具时统计在List中的连续情况,这个可以是数字,可以是日期,此文只分享的是一种思维;

问题

需要知道一个list如[1,2,3,5,6,8,9,10,11,12,13,15,17,18,19,22]的连续情况,像下面这样做一个统计即可:

1
2
3
4
5
6
7
8
list=[1,2,3,5,6,8,9,10,11,12,13,15,17,18,19,22]
需要的结果是要这样的:
1 ~ 3
5 ~ 6
8 ~ 13
15 ~ 15
17 ~ 19
22 ~ 22

解决

我当然是在某位大佬的帮助下使用了python3.8的环境解决问题。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
list=[1,2,3,5,6,8,9,10,11,12,13,15,17,18,19,22]
for sampledata in [list]:
if len(sampledata)<2:

res=[sampledata[0],sampledata[-1]]
else:
res=[sampledata[0]]
for index in range(len(sampledata)-1):
a=sampledata[index]
b=sampledata[index+1]
if b-a==1:
continue
else:
res+=[a,b]
res.append(sampledata[-1])
print(sampledata)
for i in range(0,len(res),2):
print(res[i],'~',res[i+1])
# -----------结果如下---------------------------
[1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 13, 15, 17, 18, 19, 22]
1 ~ 3
5 ~ 6
8 ~ 13
15 ~ 15
17 ~ 19
22 ~ 22

最后

如我所愿,得到我想要的结果,其实我在工作中是需要得到连续的日期,思想是一致的。

您的打赏,是我创作的动力,谢谢支持。
0%