Я пытаюсь ускорить следующий код. Программа должна найти распространенное число в строке. Это число, которое появляется в строке для более чемУскорьте код
LEN (строка)/2
раз. Задача состоит в том, что входной файл состоит из случайного числа строк, каждый из которых может содержать несколько тысяч номеров. Я пробовал подход грубой силы
for line in lst:
nline = line.split(',')
m = [i for i in nline if nline.count(i) > len(nline)/2]
print(m[0] if len(m) > 0 else "None")
и это дало около 10 секунд времени выполнения.
Самая быстрая версия работает в течение примерно 0,8 секунды
for line in lst:
nline = line.split(',')
d = collections.Counter(nline)
n = dict()
m = [i for i, n in d.items() if n > len(nline)/2]
print(m[0] if len(m) > 0 else "None")
Существуют ли какие-либо способы для дальнейшего повышения производительности?
Спасибо за большинство, не разобрались. Однако это вряд ли дает какое-либо преимущество в производительности. Как вы сказали. – Sharky