python从list中取出连续的数_【python】获取列表中最长连续数字

最近开发遇到一个功能需求,目的是要获取一个AI分析结果中最长连续帧,比如一个视频中连续3帧有人,那么我认为这个视频就是有人,我就要判断这个视频帧列表中是否有连续的三帧有人。本质就是获取列表中的最长连续数字,比如有一个列表 a = [1,2,3,4,1,2,3],要获取这个列表中最长连续数字,应该是[1,2,3,4]。

拓展,比如我想获取每隔n的最长连续数字怎么办?例如:b = [1,3,5,7,9,1,4,7,10],我想获取每隔2的最长连续数字,应该是[1,3,5,7,9],我想获取每隔3的最长连续数字,应该是[1,4,7,10]

下面是具体的代码实现

#!/usr/bin/env python#-*- coding:utf-8 -*-

defget_skip_frame(skip, frame_list):

tmp_list=[]

return_list=[]for i inrange(len(frame_list)):if len(tmp_list) ==0:

tmp_list.append(frame_list[i])else:

change= abs(frame_list[i] - tmp_list[-1])if change ==skip:

tmp_list.append(frame_list[i])else:if len(return_list)

return_list=tmp_list

tmp_list=[]

tmp_list.append(frame_list[i])if len(return_list)

return_list=tmp_listreturnreturn_list

response1 = get_skip_frame(1, [1,2,3,1,2,3,4,1,3,5,7,9,1,4,7,10])

response2 = get_skip_frame(2, [1,2,3,1,2,3,4,1,3,5,7,9,1,4,7,10])

response3 = get_skip_frame(3, [1,2,3,1,2,3,4,1,3,5,7,9,1,4,7,10])

print response1

print response2

print response3

[1, 2, 3, 4]

[1, 3, 5, 7, 9]

[1, 4, 7, 10]

可以看出结果是我们想要的顺序。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值