統計乙個陣列中多少重複的元素

2021-08-08 21:59:08 字數 755 閱讀 9267

假如原陣列為: tmp=['a','a','a','a','a','b','c','d','e']    

方法1.原陣列存入set()陣列,原陣列長度減去set陣列長度即為原陣列種重複元素的個數

b=set( tmp)

len( tmp)-len(b)為陣列 tmp中元素的重複的個數。

方法2:使用collections種的defaultdict方法,建立字典(傳入引數int),字典種的value值預設為0

from collections import *

d=defaultdict(int)

for i in tmp:

d[i]+=1

#遍歷陣列tmp種的元素,字典的索引為key值,根據key值索引出來的值為value值,

#將原陣列的元素存入key,元素的出現次數存為value值,同時由於字典的key值具有不重複的特徵,因此len(tmp)-len(d)=重複的元素個數。

#遍歷字典,將value值大於1的元素統計出來,此時時間複雜度增加n.

#注1:list陣列索引是下標;字典索引是字典的key值,根據key值計算value的值,時間複雜度是o(1),"雜湊演算法"。

#注2:字典的key值無序

#注3:set()型別陣列傳入乙個list陣列,可以去重,可以看作是只儲存key的字典型陣列(set屬於集合,特點為無序、無重複元素,可以做交集(&)、並集(|)運算)

a=(1,2,3),b=(1,2,'a'),則a&b=(1,2);a|b=(1,2,3,'a')

刪除乙個陣列中重複的元素

從別人那裡聽來的,作為原創,哈哈哈。刪除乙個陣列中重複的元素,只保留第乙個 var testarray 手機字首 省市 null 1354552.0 廣東深圳 null 1388888.0 雲南昆明 null 1388888.0 雲南dd null 迴圈方法一 inarray testarray j...

如何去除乙個陣列中的重複元素?

可能在實際開發中,會遇到這樣的乙個問題 有一組元素構成的陣列,裡面存在重複的元素,現在要去除其中重複的元素,即重複的元素只保留乙個,如何做到?乙個直接的想法是 用乙個陣列存放結果,對每個元素,檢查其在結果陣列中是否存在,如果不存在則放入,如果存在則忽略。由於不確定結果陣列的大小,用stl vecto...

編寫乙個方法 去掉乙個陣列的重複元素

方法一 var arr 0,2,3,4,4,0,2 var obj var tmp for var i 0 i arr.length i console.log tmp 結果如下 0,2,3,4 方法二 var arr 2,3,4,4,5,2,3,6 arr2 for var i 0 i arr.l...