1. 程式人生 > >Python統計列表中的重復項出現的次數

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

times 個數 %d list 記錄 位置 解決方法 利用 解決

對一個列表,比如[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求出出現次數最多的位置。
只用這段代碼的話,有一個缺點,如果有多個結果,最後的現實的結果只是出現在最左邊的那一個,不過解決方法也很簡單

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