4 回答

TA贡献1831条经验 获得超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条经验 获得超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条经验 获得超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条经验 获得超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']
添加回答
举报