最简单的例子:
a = [1,1,1,1,2,2,2,3,3,1,1,1,3] # 问:计算a中最多有几个连续的1
很明显,答案是4
如果用代码实现,最先想到的就是itertools:
import itertools a = [1,1,1,1,2,2,2,3,3,1,1,1,3] print max([len(list(v)) for k,v in itertools.groupby(a)])
但是如果不想用itertools呢?
可以尝试以下的办法,效率还比itertools高一个数量级!
import random import time import itertools random.seed(0) a = ['1' if random.random()>0.4 else ' ' for i in range(1000000)] t = time.time() print max([len(x) for x in ''.join(a).split()]) print time.time()-t t = time.time() print max([len(list(v)) for k,v in itertools.groupby(a)]) print time.time()-t ##### # 27 # 0.050999879837 # 27 # 0.450000047684
以上这篇python中计算一个列表中连续相同的元素个数方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
继续阅读与本文标签相同的文章
下一篇 :
雾计算和边缘计算对物联网的意义何在?
-
恩平“两线合一”改革试点全面完成家计入户调查,建立数据库
2026-05-15栏目: 教程
-
雷军微博抽奖送的蔚来ES6 10个月后终于兑现
2026-05-15栏目: 教程
-
丰巢回应用照片刷脸取件:已第一时间下线
2026-05-15栏目: 教程
-
微博官方回应机构大V刷单:已暂停账号商业接单
2026-05-15栏目: 教程
-
综合布线各系统清单计算
2026-05-15栏目: 教程
