from random import randint
from time import time
arr = [randint(1, 3) for _ in range(1000000)]
arr.append(4)
def profesor08(arr):
counter = dict();
for n in arr:
if str(n) in counter:
counter[str(n)] = counter[str(n)] + 1
else:
counter[str(n)] = 1
for (key, value) in counter.items():
if value == 1:
print(key)
def phaggi(arr):
for i in set(arr):
if arr.count(i) == 1:
print(i)
starttime = time()
profesor08(arr)
firsttime = time() - starttime
starttime = time()
phaggi(arr)
secondtime = time() - starttime
print(f"professor's time:\t{firsttime*100}\nphagocyte's time:\t{secondtime*100}")
500 ms between each lang_detect and 1s between each translation
try:
translate
except Exception:
pass
то оно глотает ошибки и всё.
Что можно сказать по результатам:
для определенного класса задач быстрее один способ, для другого - другой способ. В этом ничего необычного нет.
У нас есть задача, в ней приведен пример, и ничего не сказано, что данные могут быть сильно другой структуры. Вы также привели пример, аналогичный примеру в задаче, и ничего не сказали, что данные могут быть другой структуры. На примере из задачи и на вашем первом примере мой алгоритм быстрее. Это неоспоримо.
В принципе, можно оценить примерно диапазоны применимости обоих алгоритмов и сделать универсальную функцию для любых диапазонов :)
Полагаю, более конструктивного решения не найти. Давайте остановим разгорающийся флейм.