最近开发遇到一个功能需求,目的是要获取一个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 -*-
def get_skip_frame(skip, frame_list):
tmp_list = []
return_list = []
for i in range(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) < len(tmp_list):
return_list = tmp_list
tmp_list = []
tmp_list.append(frame_list[i])
if len(return_list) < len(tmp_list):
return_list = tmp_list
return return_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]
可以看出结果是我们想要的顺序。
【python】获取列表中最长连续数字的更多相关文章
-
【381】python 获取列表中重复元素的索引值
参考:获取python的list中含有重复值的index方法_python_脚本之家 核心思想:建立字典,遍历列表,把列表中每个元素和其索引添加到字典里面 cc = [1, 2, 3, 2, 4] f ...
-
python 获取列表中次大的数值.
需求: 1.写个函数,把一组数字传到函数中,然后取出最大值和次大值. 2.不能使用排序函数. 分析: Q: list = [100,50,60,70,30,45] 怎么从这个列表中取出最大值? A: ...
-
python 将列表中的字符串转为数字
本文实例讲述了Python中列表元素转为数字的方法.分享给大家供大家参考,具体如下: 有一个数字字符的列表: numbers = ['1', '5', '10', '8'] 想要把每个元素转换为数字: ...
-
Python获取列表中的最后一个或者倒数第几个的方案
print(members[3]) 灵魂所在“ - (负号 )” 我们先来创建一个列表,和php中的数组一样. members = ['张三','李四','王五','芳芳','小明','小王'] 按照 ...
-
Python访问列表中的值
Python访问列表中的值: 列表中可以包含所有数据类型: # 列表中可以存放 数字数据类型数据 # int 型数据 lst = [1,2,3] print(lst) # [1, 2, 3] # fl ...
-
获取列表中的最大的N项和最小的N项
获取列表中的最大的N项和最小的N项 #!/sur/bin/env python # -*- coding:utf-8 -*- # author:zengsf #time:2018/10/31 impo ...
-
SharePoint 2010 获取列表中所有数据(包括文件夹内)的方法
转: http://blog.csdn.net/wangwenism/article/details/8751411 SharePoint的列表能存储文件以及文件夹,用户使用的时候,经常会建几个分类文 ...
-
Python统计列表中的重复项出现的次数的方法
本文实例展示了Python统计列表中的重复项出现的次数的方法,是一个很实用的功能,适合Python初学者学习借鉴.具体方法如下:对一个列表,比如[1,2,2,2,2,3,3,3,4,4,4,4],现在 ...
-
Python 去除列表中重复的元素
Python 去除列表中重复的元素 来自比较容易记忆的是用内置的set l1 = ['b','c','d','b','c','a','a'] l2 = list(set(l1)) print l2 还 ...
随机推荐
-
POJ 1743 Musical Theme 二分+后缀数组
Musical Theme Description A musical melody is represented as a sequence of N (1<=N<=20000)no ...
-
通过nginx代理之后,获取客户端ip
1.相关nginx配置(通过header将客户端ip,host等信息传入) location ~ .*.do$ { proxy_set_header X-Real-IP $remote_addr; p ...
-
【Java】JDBC连接数据库
JDBC介绍 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言 ...
-
让HTML页面缩放适应移动客户端尺寸
多的不说了,直接看代码吧 <html lang="en"> <head> <meta http-equiv = "X-UA-Compatib ...
-
[Spark内核] 第40课:CacheManager彻底解密:CacheManager运行原理流程图和源码详解
本课主题 CacheManager 运行原理图 CacheManager 源码解析 CacheManager 运行原理图 [下图是CacheManager的运行原理图] 首先 RDD 是通过 iter ...
-
Hibernate 一对一中的一些问题
1.对于想查询一对一种一方为空的时候使用 例如一个用户对应一个人,则要从人查找没有用户的人员的话, 使用hql语句是查询不到的 我今天也碰到了这个问题,研究了下,可以用以下语句查出来:from Per ...
-
hibernate框架中注意的几个问题
使用hibernate框架中,session.createSQLQuery创建sql语句的时候遇到的问题 1. select e.id,d.id from emp e,dept d where e. ...
-
Task.Run与Task.Factory.StartNew的区别
Task是可能有延迟的工作单元,目的是生成一个结果值,或产生想要的效果.任务和线程的区别是:任务代表需要执行的作业,而线程代表做这个作业的工作者. 在.Net 4中,Task.Factory.Star ...
-
关于git的一些命令
git命令 1.git init 初始化仓库 2.git status 查看当前状态 3.git add -A(提交所有的) 提交本地文件到缓存区 4.git commit -m"提交信息& ...
-
Loj #3055. 「HNOI2019」JOJO
Loj #3055. 「HNOI2019」JOJO JOJO 的奇幻冒险是一部非常火的漫画.漫画中的男主角经常喜欢连续喊很多的「欧拉」或者「木大」. 为了防止字太多挡住漫画内容,现在打算在新的漫画中用 ...