У вас не должно быть проблем с памятью с вашим кодом в Python 3. Я попробовал его (изменив xrange()
на range()
) и получил ответ через 12 секунд.
Вы можете написать функцию следующим образом:
def Thermo_Only(n):
return [ (1<<i)-1 for i in range(0,3*n,3) ]
Это фактически позволяет вам вообще не создавать список. если вы собираетесь поместить результат в массив:
thermoArray = Thermo_Only(n)
вы можете просто создать вместо нее функцию и использовать ее так, как если бы вы ссылались на индексы в вашем массиве:
def thermoArray(n): return (1<<(3*n))-1
и используйте thermoArray(i)
вместо thermoArray[i]
в своем коде.