Напишите функцию shift(steps), которая выполняет сдвиг в списке целых чисел ** указанное...

+120 голосов
3.5m просмотров

Напишите функцию shift(steps), которая выполняет сдвиг в списке целых чисел на указанное число шагов. Элемент, вышедший за пределы списка, должен появляться с другого его конца. Например, если последний элемент сдвигается на три шага, то он становится третьим. Функция shift() в качестве аргументов принимает число шагов сдвига. Функция shift не должна принимать или возвращать список. Она должна работать с глобальной переменной mainList. Для решения этой задачи можно воспользоваться следующими методами списка: •insert() - вставляет элемент по указанному индексу •pop() - извлекает элемент с конца списка или, если был передан индекс, по индексу. При этом элемент из списка удаляется. Заранее спасибо​


Информатика | 3.5m просмотров
Дан 1 ответ
+74 голосов

Ответ:

--- Python 3.8.3 ---

def shift(steps):

   global mainList

   if steps < 0:

       steps = abs(steps)

       for i in range(steps):

           mainList.append(mainList.pop(0))

   else:

       for i in range(steps):

           mainList.insert(0, mainList.pop())

mainList = [4,5,6,7,8,9,0]

print(*mainList)

shift(3)

print(*mainList)

P.S В данном случае использование глобальной переменной внутри функции выглядит мягко скажем не очень.

(1.6k баллов)