Я пытаюсь найти частоту каждого символа в любом данном тексте, используя алгоритм сложности O (n). Мой алгоритм выглядит так:
s = len(text)
P = 1.0/s
freqs = {}
for char in text:
try:
freqs[char]+=P
except:
freqs[char]=P
но я сомневаюсь, что этот словарь-метод достаточно быстр, потому что он зависит от базовой реализации методов словаря. Это самый быстрый метод?
ОБНОВЛЕНИЕ: нет увеличения скорости, если используются коллекции и целые числа. Это потому, что алгоритм уже имеет сложность O (n), поэтому существенное ускорение невозможно.
Например, результаты для 1 МБ текста:
without collections:
real 0m0.695s
with collections:
real 0m0.625s