最簡單的例子:
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中將乙個列表賦值給另乙個列表
在寫楊輝三角時,希望將乙個列表直接賦值給另乙個列表,就嘗試寫了一下。list1 1 2 3 list2 list1 print list1 print list2 執行結果 1 2 3 1 2 3 通過結果發現,可以直接賦值,但在查資料的過程中發現,一旦改變list1的值,list2的值也會隨之發生...
Python在乙個列表中查詢不在另乙個列表中的元素
一 問題場景 要比較兩個列表list a list b,以便建立乙個新列表,新列表中儲存list b元素沒有出現在list a中的內容。例如 new list list a a b c d e list b b d f m 結果應該是 new list f m 二 分析思路 方案一 利用列表迴圈的方...
Python利用random生成乙個列表內的隨機數
首先,需要匯入random模組 importrandom隨機取1 33之間的1個隨機數,可能重複 random.choice range 1,34 print得到一系列隨機數,執行一次得到乙個隨機數 print random.choice range 1,34 隨機取1 33之間的6個隨機數,可能重...