Если вы действительно хотите заново изобрести collections.Counter
, это возможно как с list.count
, так и без него. Однако я не вижу смысла.
Используя list.count
, вы можете использовать словарь для понимания. Это неэффективно, поскольку список передается один раз для каждой переменной.
def frequency2(L):
return {i: L.count(i) for i in set(L)}
Если вы не хотите использовать list.count
, это возможно с помощью if
/ else
:
def frequency3(L):
d = {}
for i in L:
if i in d:
d[i] += 1
else:
d[i] = 0
return d
Затем, чтобы извлечь наибольшее количество (и):
maxval = max(d.values())
res = [k for k, v in d.items() if v == maxval]