python中计算一个列表中连续相同的元素个数方法
最简单的例子:
a=[1,1,1,1,2,2,2,3,3,1,1,1,3] #问:计算a中最多有几个连续的1
很明显,答案是4
如果用代码实现,最先想到的就是itertools:
importitertools a=[1,1,1,1,2,2,2,3,3,1,1,1,3] printmax([len(list(v))fork,vinitertools.groupby(a)])
但是如果不想用itertools呢?
可以尝试以下的办法,效率还比itertools高一个数量级!
importrandom importtime importitertools random.seed(0) a=['1'ifrandom.random()>0.4else''foriinrange(1000000)] t=time.time() printmax([len(x)forxin''.join(a).split()]) printtime.time()-t t=time.time() printmax([len(list(v))fork,vinitertools.groupby(a)]) printtime.time()-t ##### #27 #0.050999879837 #27 #0.450000047684
以上这篇python中计算一个列表中连续相同的元素个数方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西