Проблема состоит в том, чтобы вращать список, перемещая числа справа, k раз. например, [1,2,3,4,5,6,7] с k = 3 будет вращать числа справа по одному и перемещать их в верхнюю часть списка, чтобы вывод был [5,6, 7,1,2,3,4]. Вместо того, чтобы использовать операцию выталкивания и вставки в список, я решил использовать тип данных dequue в python, который поддерживает добавление слева от списка в O (1). Однако я не совсем уверен, как происходит преобразование из очереди в список. Вторая функция работает, а первая - нет. Если вы можете объяснить, почему, это было бы очень полезно.
from collections import deque
def rotateNums(nums, k):
dq = deque(nums)
for _ in range(0,k):
num = dq.pop()
dq.appendleft(num)
nums = list(dq)
def rotateNums(nums, k):
dq = deque(nums)
for _ in range(0,k):
num = dq.pop()
dq.appendleft(num)
nums[:] = list(dq)
nums = [1,2,3,4,5,6,7]
k = 3
print(f'nums before rotation: {nums}')
rotateNums(nums, k)
print(f'nums after rotation: {nums}')
Выход из первой функции: числа после вращения: [1, 2, 3, 4, 5, 6, 7]
Выход из второй функции: [5, 6, 7, 1, 2, 3, 4]