Сдвиг элементов вперед в списке - PullRequest
1 голос
/ 25 марта 2019

Я пытаюсь сделать следующее; [1,2,3,4] -> [1,1,2,3]

Вот моя попытка, но она не работает. Я хочу изменить это на месте.

A = [1,2,3,4]
temp = A[0]
for i in range(1, len(A)-2):
    A[i] = temp
    temp = A[i]

Но вместо этого я возвращаюсь [1,1,3,4]. Я тоже хочу делать назад, но пока не могу сдвинуться на один шаг вперед.

1 Ответ

5 голосов
/ 25 марта 2019

Если я что-то упускаю, возможно, вам просто нужно какое-то простое нарезание списка и назначение?

A[1:] = A[:-1]
A
# [1, 1, 2, 3]

Аналогично, сдвиг назад на 1 будет

A[:-1] = A[1:]

В общем, чтобы сдвинуться на N, используйте:

A[n:] = A[:-n]

Сдвиг вперед на 1 также можно выполнить с помощью петли for и временной переменной:

temp = A[0]
for i in range(len(A)-1):
    temp, A[i+1] = A[i+1], temp

A
# [1, 1, 2, 3]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...