Cycling values of a list

• A+
Category：Languages

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]) ``