Подтвердить что ты не робот

Диапазон 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() будет работать намного лучше для того, что я хочу.

4b9b3361

Ответ 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)