Ускорить обработку списка в Python

У меня есть задача по обработке большого списка, ниже приведу идею работы моей программы.
Кто может подсказать, каким инструментом ускорить работу?

main_list = [a_0, a_1, a_2, .... a_n]     # Это список, который содержит в себе около 8000 переменных float
main_list.append(a_new)                   # Добавляю новую переменную в список, добавление идет циклом
my_funct(min(main_list), max(main_list))  # Отправляю максимальное и минимальное значение в другию функцию
del (main_list[0])                        # Удаляю 0-й элемент из списка

Ответы (2 шт):

Автор решения: Zhihar
  1. определение min, max при последовательном добавлении элементов в список для каждого добавления должно исключать просмотр элементов списка

например так:

min_value, max_value = min(main_list), max(main_list)

while True:
    main_list.append(a_new)
    min_value = min(a_new, min_value)
    max_value = max(a_new, max_value)
  1. удаление 0-го элемента - тут надо смотреть как вообще в питоне устроен список (например в c++ для такой цели вместо vector лучше использовать list)

в питоне наверное быстрее среза ничего нет (но не уверен)

main_list = main_list[1:]
→ Ссылка
Автор решения: Эникейщик

Каждый раз список из 8000 элементов дважды анализируется - один раз для поиска максимума, второй раз для поиска минимума. При добавлении следующего элемента имеющиеся 8000 анализируются заново, хотя ничего нового там нет. Достаточно каждый новый элемент сравнивать с известными максимумом и минимумом и тем самым избежать 16000 сравнений. Примерно так

main_list = [a_0, a_1, a_2, .... a_n] # Это список, который содержит в себе около 8000 переменных float
minimum = min(main_list)
maximum = max(main_list)
main_list.append(a_new)  # Добавляю новую переменную в список, добавление идет циклом
if a_new > maximum:
    maximum = a_new
if a_new < minimum:
    minimum = a_new
my_funct(minimum, maximum)  # Отправляю максимальное и минимальное значение в другию функцию
del (main_list[0])

Да и вместо удаления первого элемента возможно дешевле брать срез

main_list = main_list[1:]
→ Ссылка