Список хранит ссылки на переменные в памяти, а значит список длиной N в 32-х битных системах будет иметь размер (2*2)*N, а в 64-х битных (4*2)*N
>>> from sys import getsizeof
>>> l = list()
>>> print getsizeof(l)
32 (в 32 битной системе)
64 (в 64 битной системе)
Значит искомая величина 32 + (2*2)*N (в 32 битной системе), 64 + (4*2)*N (в 64 битной системе), где N - длина списка.
Но список хранит указатели, а значит место займут еще и сами данные. В вашем случае данные имеют тип integer
>>> from sys import getsizeof as gs
>>> a = int()
>>> print gs(a)
12 (в 32 битной системе)
24 (в 64 битной системе)
Значит памяти всего израсходуется
32 + (2*2)*N + N*12 (в 32 битной системе)
64 + (4*2)*N + N*24 (в 64 битной системе)
Для списка из 7млн чисел имеем:
32 + (2*2)*7000000 + 7000000*12 = 112000032 байт = 109375 Кбайт = 106.8 Мбайт
64 + (4*2)*7000000 + 7000000*24 = 224000064 байт = 218750 Кбайт = 213.6 Мбайт