Синтаксис для range
равен range(start, stop, step)
. Таким образом, итерация по range(0, len(lst), -1)
будет повторяться по ничего , так как вы не можете перейти вниз с 0
до положительного числа.
Это сработает, отметив, что мы должны вычесть 1 для учета 0-индексации:
for j in range(len(lst)-1, len(lst)-1-value, -1):
lst2.append(lst[j])
print(lst2)
[302, 304, 404, 313, 213, 407, 210]
Ваш range
объект здесь немного запутан. Отмечая, что отрицательные диапазоны и индексирование отрицательных списков работают нормально, вы можете использовать вместо range(-1, -value-1, -1)
.
С Python вам вообще не нужно перебирать диапазоны. Вместо этого вы можете использовать нарезку списка и reversed
для итерации самих значений, а не индексов:
for j in reversed(lst[-value:]):
lst2.append(j)
Конечно, ручной цикл здесь не требуется, его можно расширить с помощью +=
:
lst2 += reversed(lst[-value:])
Если вам также необходимо удалить эти элементы из lst
, вы можете сделать это с помощью нарезки:
lst = lst[:-value]