Shift the items in the given array, by some number of times, as shown in the below examples;
array = [1, 2 ,3 , 4, 5, 6]
k1 = 2
k2 = -3
k3 = 20
test1:
cirShift(array, k1)
Result: [5, 6, 1, 2, 3, 4]
test2:
cirShift(array, k2)
Result: [4, 5, 6, 1, 2, 3]
test3:
cirShift(array, k3)
Result: [5, 6, 1, 2, 3, 4]
I have used the below to achieve the right-rotate a list by k positions;
def rightRotateByOne(A):
    Fin= A[-1]
    for i in reversed(range(len(A) - 1)):
        A[i + 1] = A[i]
    A[0] = Fin
 
def rightRotate(A, k):
    if k < 0 or k >= len(A):
        return
    for i in range(k):
        rightRotateByOne(A)
 
if __name__ == '__main__':
    A = [1, 2, 3, 4, 5, 6, 7]
    k = 3
    rightRotate(A, k)
    print(A)
As of now, able to obtain results for test1 but would like to achieve the test2 and test3
 
     
     
    