4 回答

TA貢獻1831條經(jīng)驗 獲得超9個贊
以下是如何使用Countercollections 模塊:
from collections import Counter
def getHighestOcurrence(listAnyKind):
c = Counter(listAnyKind)
m = max(c.values())
return [k for k in c if c[k] == m]
listAnyKind = ['diamonds', 'spades', 'spades', 'clubs','hearts', 'diamonds']
print(getHighestOcurrence(listAnyKind))
輸出:
['diamonds', 'spades']

TA貢獻1852條經(jīng)驗 獲得超7個贊
Numpy 是另一種簡短而快速的方法。您找到元素的頻率,然后返回頻率最高的元素:
import numpy as np
def getHighestOcurrence(listAnyKind):
u, freq = np.unique(listAnyKind, return_counts=True)
return u[np.argwhere(freq==freq.max())].ravel().tolist()
輸出:
['diamonds', 'spades']

TA貢獻1966條經(jīng)驗 獲得超4個贊
嘗試一下:
def getHighestOcurrence(listAnyKind):
counter = 0
num = listAnyKind[0]
frequency = {}
for i in set(listAnyKind):
frequency[i] = listAnyKind.count(i)
return [k for k in frequency if frequency[k] == max(frequency.values())]
listAnyKind = ['diamonds', 'spades', 'spades', 'clubs','hearts', 'diamonds']
print(getHighestOcurrence(listAnyKind))

TA貢獻2039條經(jīng)驗 獲得超8個贊
使用字典在其中存儲項目名稱及其頻率
def getHighestOcurrence(listAnyKind):
dic = {}
for item in listAnyKind:
if item not in dic:
dic[item] = 1
else:
dic[item]+=1
max_occu = max(dic.values())
max_item = [k for k, v in dic.items() if v==max_occu]
return max_item
listAnyKind = ['diamonds', 'spades', 'spades', 'clubs','hearts', 'diamonds']
print(getHighestOcurrence(listAnyKind))
輸出
['diamonds', 'spades']
添加回答
舉報