У меня есть программа, которая обрабатывает большие наборы данных. Большинство из них выполняется очень быстро, за исключением нескольких строк кода, которые иногда занимают около минуты.
Что делают эти строки кода, так это принимают список от 1 до 1000 различных значений в диапазоне от 0до 1000000. Затем в течение определенного k раз они фильтруют список и удаляют значение, которое больше всего представлено в этом списке (если несколько значений представлены одинаковое количество раз, оно просто принимает случайное значение).
Есть ли способ написать это, так что выполнение займет меньше времени.
Я запускаю Windows 10 Pro с Intel I7-8086K GTX1660 и 16 ГБ оперативной памяти DDR4.
k = int(new1[1])
def most_frequent(lists):
return max(set(lists), key=lists.count)
ite = 0
while ite < k:
new = list(filter(lambda a: a != most_frequent(new), new))
ite += 1
Какперед тем, как я получу результаты, я хочу сказать, что программа работает очень медленно.