python中計算乙個列表中連續相同的元素個數

2021-08-16 04:10:15 字數 867 閱讀 5372

最簡單的例子:

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個隨機數,可能重...