если значения нулевые как мне надо то вроде можно использовать range хотя я не помню уже как. а если нужно заполнить случайными значениями типа random.randint. Количество значений примерно 16 миллионов. Не спрашивайте плз зачем мне это надо. Но надо. Как оптимизировать код чтобы выполнялось максимально быстро. А то если сделать чисто append в цикле то выполняется аж ~16 секунд пиздец как много.

Глядишь в книгу видишь хуй?
random.randint(0, 2**32-1)int.from_bytes(random.randbytes(4))две абсолютно идентичные функции работают одна в 2 раза быстрее другой. Если еще анролл добавить, еще процентов 10-20 выжать можно. Но все равно очень медленно работает.
да насрать придерживайся контекста
Добавил анролл и 4 потока, выжал максимум:
#!/usr/bin/python3 import threading import random import time import gc gc.disable() start_time = time.time() result = [] def fasta(): for x in range (250000): bytes = random.randbytes(64) int_arr = [] for i in range(0, 64, 4): int_arr += [int.from_bytes(bytes[i:i+4])] result.extend(int_arr) threads = [] threads += [threading.Thread(target=fasta)] threads += [threading.Thread(target=fasta)] threads += [threading.Thread(target=fasta)] threads += [threading.Thread(target=fasta)] for t in threads: t.start() for t in threads: t.join() print(64000000/(time.time()-start_time)/1024/1024*8, "Mbps") print(time.time()-start_time)