- A+

I'm new to coding and am trying to write a simple code that will take a list, say [1,2,3] and cycle the elements n number of times. So if n=1, I should get A=[3,1,2]. If n=2, I should get A=[2,3,1].The code I have written is:

`n=1 j=0 A = [1,2,3] B = [None]*len(A) while j<=n: for i in range(0,len(A)): B[i] = A[-1+i] j=j+1 print(B) `

The problem is that no matter what the value of n is I get the same answer which is only cycled once. I think the problem is that the loop is cycling through the same B every time, so I need to store the new B as something else and then repeat the loop with new B. But I can't figure out how to do that. Any tips would be appreciated

I think you're overcomplicating it. Consider changing it to something like the following:

`n = 1 A = [1,2,3] B = A.copy() for _ in range(n): # Cycle through by concatenating the last element and all other elements together B = [B[-1]]+B[0:-1] print(B) `

In case of `n=1`

, you get `[3, 1, 2]`

, and `n=2`

gives you `[2, 3, 1]`

Note that what you are trying to do is implemented in `numpy.roll`

(I suppose you're asking about the process, not the result, but just in case)

`import numpy as np >>> np.roll(A,1) array([3, 1, 2]) >>> np.roll(A,2) array([2, 3, 1]) `