Что нужно сделать
Вы пишете программу для маленького табло, в котором циклически повторяется один и тот же текст или числа. Например, как в метро, автобусах или трамваях.
Даны список из N элементов и целое число K. Напишите программу, которая циклически сдвигает элементы списка вправо на K позиций. Используйте минимально возможное количество операций присваивания.
Пример 1:
Сдвиг: 1
Изначальный список: [1, 2, 3, 4, 5]
Сдвинутый список: [5, 1, 2, 3, 4]
Пример 2:
Сдвиг: 3
Изначальный список: [1, 4, -3, 0, 10]
Сдвинутый список: [-3, 0, 10, 1, 4]
Что оценивается
- Результат вычислений корректен.
- Input содержит корректные приглашения для ввода.
- Формат вывода соответствует примеру.
- Переменные и функции имеют значащие имена, не только a, b, c, d
num_list = [1, 2, 3, 4, 5]
step = int(input('Сдвиг: '))
new_list = []
diff = len(new_list) - step
while step != 0:
for _ in range(step):
new_list.append(num_list[-step])
step -= 1
for i in num_list[:diff]:
new_list.append(i)
print(f'''Изначальный список: {num_list}
Сдвинутый список: {new_list}''')