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中计算一个列表中连续相同的元素个数方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
热门推荐
10 祝孙辈生日祝福语简短
11 恋人跨年祝福语大全简短
12 考大学敬酒简短祝福语
13 开工投产大吉祝福语 简短
14 偶然结婚祝福语朋友简短
15 感谢学长学姐祝福语简短
16 戏精的祝福语简短
17 我要结婚祝福语简短
18 婚前女儿生日祝福语简短