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中计算一个列表中连续相同的元素个数方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。