在列表中向前移动元素

1 python loops list

我正在尝试执行以下操作; [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]
Run Code Online (Sandbox Code Playgroud)

但是我反而回来了[1,1,3,4]。我也想做后退,但到目前为止我不能前进一个。

cs9*_*s95 5

除非我缺少任何内容,否则您只需要一些简单的列表切片和分配?

A[1:] = A[:-1]
A
# [1, 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

同样,向后移1将是

A[:-1] = A[1:]
Run Code Online (Sandbox Code Playgroud)

通常,要移动N,请使用:

A[n:] = A[:-n]
Run Code Online (Sandbox Code Playgroud)

也可以使用for循环和temp变量将值向前移动1 :

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

A
# [1, 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)