Я создаю список с помощьюОптимизация создания списка в Python
sum_range=list(2**x for x in range(start_range,end_range+1))
Здесь start_range и end_range принимать большие значения от 0 до 4 миллионов человек.
Эта строка кода, похоже, является горлышком бутылки. В конечном счете, я хочу получить сумму всего числа в списке sum_range. Может быть, есть лучший способ сделать это?
Время принимать, когда: -
start_range = 188640 end_range = 197280
код занимает около 6 секунд, чтобы работать на моей системе.
Если вы используете Python 2, используйте 'xrange', он использует ленивые вычисления. – idjaw
@idjaw: Учитывая, насколько невероятно огромная '2 ** x', NumPy не поможет. – user2357112
Вы пытаетесь создать 2^4000000? Просто запустить '2 ** (4 * 10 ** 6)' достаточно, чтобы заморозить мою подсказку Python за хорошие 30 секунд, вы уверены, что это то, что вам нужно сделать? – Marius