Python統計列表中的重復項出現的次數


 

對一個列表,比如[1,2,2,2,2,3,3,3,4,4,4,4],現在我要統計這個列表里的重復項,並且重復了幾次也要統計出來。

eg1:

mylist = [1,2,2,2,2,3,3,3,4,4,4,4]
myset = set(mylist) #myset是另外一個列表,里面的內容是mylist里面的無重復 項
for item in myset:
    print("the %d has found %d" %(item,mylist.count(item)))

eg2:

List=[1,2,2,2,2,3,3,3,4,4,4,4]
a = {}
for i in List:
    if List.count(i)>1:
        a[i] = List.count(i)
print (a)

利用字典的特性來實現。

eg3:

>>> from collections import Counter
>>> Counter([1,2,2,2,2,3,3,3,4,4,4,4])
Counter({1: 5, 2: 3, 3: 2})


我再增補一個只用列表實現的方法:
l=[1,4,2,4,2,2,5,2,6,3,3,6,3,6,6,3,3,3,7,8,9,8,7,0,7,1,2,4,7,8,9]

count_times = []
for i in l :
        count_times.append(l.count(i))

print (l[l.index(max(count_times))])

原理就是把列表中的每一個數出現的次數在其對應的位置記錄下來,然后用max求出出現次數最多的位置。
只用這段代碼的話,有一個缺點,如果有多個結果,最后的現實的結果只是出現在最左邊的那一個,不過解決方法也很簡單


免責聲明!

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



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