Встроенный класс range
делает именно то, что вы хотите в Python 3. В Python 2 используйте xrange
. вместо. Например:
for i in range(1, 401, 4): ...
range
Объект не содержит полный список. Он записывает только размер начала, конца и шага. Итератор также записывает текущую позицию.
Важно использовать xrange
в Python 2, потому что функция диапазона вернет весь список, который точно противоположный тому, что вы хотите.
a = range(1, 401, 4)
sum(a)
рассчитает сумму, которую вы хотите, и позволяет повторно использовать a
впоследствии.
Замечание о количестве 401
Конец диапазона является исключительным. Существует несколько общих формул для получения правильного количества элементов в диапазоне. start + count * step
- это тот, который я выбрал здесь, потому что он самый простой. Это также самое большое число, которое даст count
, а не count + 1
элементов в диапазоне. start + (count - 1) * step + 1
- это формула для наименьшего числа, которая даст вам count
элементов. Поскольку вам нужно 100 элементов, конечное значение 398, 399 или 400 даст вам тот же результат, что и 401.
Это не список понимания и передачи в диапазоне само по себе хорошо. –
Нет проблем. См. Комментарий, который я сделал для другого ответа. 'x for x in ...' почти никогда не требуется. –
Это технически называется выражением генератора, а не пониманием: http://stackoverflow.com/documentation/python/292/generators#t=201609020956268959493 –