python -- 對list去重並找出列表list中的重復元素


一、一個列表中可能含有重復元素,使用set()可以實現列表的去重處理,但是無法知道哪些元素是重復的,下面的函數用於找出哪些元素重復了,以及重復的次數。
代碼:
from collections import Counter #引入Counter
a = [1, 2, 3, 3, 4, 4]
b = dict(Counter(a))
print(b)
print ([key for key,value in b.items() if value > 1]) #只展示重復元素
print ({key:value for key,value in b.items() if value > 1}) #展現重復元素和重復次數
測試:

二、python list去重方法及效率
1、循環效率不行,但是此方法保證了列表的順序性。
代碼:
li=[1,2,3,4,5,1,2,3]
new_li=[]
for i in li:
if i not in new_li:
new_li.append(i)
print(new_li)
測試:

2、set去重
將列表轉化為集合再轉化為列表,利用集合的自動去重功能。簡單快速。
缺點是:使用set方法無法保證去重后的順序。

但是,可以通過列表中索引(index)的方法保證去重后的順序不變。

3、利用字典key不重復


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM