Диапазон Python() с отрицательными шагами
Есть ли способ использования функции range()
с шагом -1?
например. используя range(10, -10)
вместо квадратных квадратных скобок ниже?
I. следующую строку:
for y in range(10,-10)
Вместо
for y in [10,9,8,7,6,5,4,3,2,1,0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10]:
Очевидно, что можно было бы сделать это с помощью другого типа цикла более элегантно, но пример range()
будет работать намного лучше для того, что я хочу.
Ответы
Ответ 1
range(10,-11,-1)
В общем, ничего не стоит попробовать - вы можете ввести его в интерпретатор и посмотреть, что он делает.
Для справки это все документировано, но в основном я хотел бы призвать вас не бояться играть и видеть, что происходит. Как вы можете видеть, ваша интуиция была на месте.
Ответ 2
Да, определив шаг:
for i in range(10, -11, -1):
print(i)
Ответ 3
Да, однако вам нужно указать, что вы хотите сделать шаг назад, установив для параметра step значение -1.
Использование:
for y in range(10, -10, -1)
Ответ 4
В дополнение к другим хорошим ответам есть альтернатива:
for y in reversed(range(-10, 11)):
См. документацию для reversed()
.
Ответ 5
Вы можете заметить, что функция диапазона работает только в порядке возрастания без третьего параметра. Если вы используете без третьего параметра в блоке диапазона, это не сработает.
for i in range(10,-10)
Вышеуказанный цикл не будет работать.
Чтобы этот цикл работал, вы должны использовать третий параметр как отрицательное число.
for i in range(10,-10,-1)