最簡單的例子:
a = [1,1,1,1,2,2,2,3,3,1,1,1,3]# 問:計算a中最多有幾個連續的1
很明顯,答案是4
如果用代碼實現,最先想到的就是itertools:
import itertoolsa = [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 randomimport timeimport itertoolsrandom.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()-tt = 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中計算一個列表中連續相同的元素個數方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答