如何快速的統計出那些是重複的呢?
形如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...