查詢統計python列表中的重複元素

2021-08-16 15:49:22 字數 657 閱讀 5288

如何快速的統計出那些是重複的呢?

形如aa=[1,2,2,3,2,4]的乙個list,其中有重複元素,由於集合中重複元素無意義,所以

bb=list(set(aa))可很容易得到去除重複的列表[1,2,3,4]

若比較aa和bb的長度,很容易發現有重複,但無法指出重複的元素是哪些。

那麼用網上乙個比較兩個list差集的方法可行嗎?

print list(set(aa).difference(set(bb))),結果是不行,因為bb和aa的差正好都是重複的元素,而set(aa)的轉換已經去除了重複元素,所以得到aa和bb的差值是。可見這種方法只能用於比較兩個列表中有不同元素的情況。

最簡單的方法其實是引入counter包:

from collections import counter

然後counter(aa),即可得到乙個顯示出所有元素重複次數的dict。

counter()

出現頻度最高的元素會預設在前面,也可用dict()操作符將其轉換為乙個普通的dict來進行額外處理。

比如採用列表解析表示式來處理:

print [ str(k)+':'+str(v) for k,v in dict(counter()).items() if v>1]

將顯示出僅含重複項的列表:

['2:3']

python中列表去重

li 2,5,4,7,2,1,3,2,6,7 print 方法一列表追加 center 40,list1 for i in li if i not in list1 print list1 print 推導式實現 center 40,list2 print list2 print 方法二利用字典鍵唯...

python中列表去重

列表去重 定義乙個函式 def remove element m list 將列表 10,1,2,20,10,3,2,1,15,20,44,56,3,2,1 去除重複元素 def remove element m list 定義乙個空列表 new list 迴圈判斷某個元素是不是在新的列表中,如果在...

Python 列表查重

from collections import counter 引入counter a 29,36,57,12,79,43,23,56,28,11,14,15,16,37,24,35,17,24,33,15,39,46,52,13 b dict counter a print key for key...