Пример функции, которая смещает элементы списка на указанное число шагов. Если шаг имеет отрицательное значение, смещение происходит влево. Выбывшие спереди элементы появляются в конце списка. Если шаг положителен, смещение происходит вправо. Выбывшие сзади элементы появляются в начале списка.
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)