def shift(lst, steps):
"""Циклический сдвиг списка.
lst - список,
steps - количество шагов.
Если значение 'steps' отрицательно,
то сдвиг влево,
если положительно, то вправо."""
# сдвиг влево
if steps < 0:
steps = abs(steps)
# Количество итераций цикла равно
# количеству шагов.
for i in range(steps):
# Извлекается первый элемент
item = lst.pop(0)
# и добавляется в конец списка.
lst.append(item)
# сдвиг вправо
else:
for i in range(steps):
# Извлекается последний элемент
item = lst.pop()
# и вставляется в начало списка.
lst.insert(0, item)
nums = [4, 5, 6, 7, 8, 9, 0]
print(nums)
# сдвиг влево на 2 позиции
shift(nums, -2)
print(nums)
# Сдвиг вправо на 3 позиции.
# Сдвигаться будет список,
# уже измененный от предыдущего
# вызова shift().
shift(nums, 3)
print(nums)
[4, 5, 6, 7, 8, 9, 0]
[6, 7, 8, 9, 0, 4, 5]
[0, 4, 5, 6, 7, 8, 9]
с вашего сайта.