Без импорта вы можете использовать обычный словарь.
def checkio(text: str) -> str:
lowercase_input = text.lower()
x = {}
for i in lowercase_input:
x[i] = x.get(i, 0) + 1
return max(x.items(), key=lambda x: x[1])
key, value = checkio('asdafsasaaaa') # ('a', 7)
Объяснение
dict.get
имеет необязательный второй параметр, который мы устанавливаем в 0
. Это означает, что если ключ не существует в словаре, x.get(i, 0)
вернет 0
. max
имеет необязательный параметр key
, который принимает анонимную (lambda
) функцию. Поскольку dict.items()
возвращает итерацию из (key, value)
пар, мы можем вычислить максимум, посмотрев на компонент value
(1-й индекс).
Производительность
Это неэффективно по сравнению с Counter
+ most_common
, как , показанное @ abc . В частности, most_common
использует heapq
, чтобы уменьшить сложность времени. См. Также Коллекции Python. Основатель: самая общая сложность .