Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Python program to right rotate a list by n

  • Difficulty Level : Easy
  • Last Updated : 03 Dec, 2021

Given a list, right rotate the list by n position.

Examples : 

Input : n = 2 
         List_1 = [1, 2, 3, 4, 5, 6]
Output : List_1 = [5, 6, 1, 2, 3, 4]
We get output list after right rotating 
(clockwise) given list by 2.

Input :  n = 3
         List_1 = [3, 0, 1, 4, 2, 3]
Output : List_1 = [4, 2, 3, 3, 0, 1]

Approach #1 : Traverse the first list one by one and then put the elements at required places in a second list. 

Python3




# Python program to right rotate a list by n
 
# Returns the rotated list
 
def rightRotate(lists, num):
    output_list = []
 
    # Will add values from n to the new list
    for item in range(len(lists) - num, len(lists)):
        output_list.append(lists[item])
 
    # Will add the values before
    # n to the end of new list
    for item in range(0, len(lists) - num):
        output_list.append(lists[item])
 
    return output_list
 
 
# Driver Code
rotate_num = 3
list_1 = [1, 2, 3, 4, 5, 6]
 
print(rightRotate(list_1, rotate_num))


Output : 



[4, 5, 6, 1, 2, 3]

Time complexity : O(n)

Approach #2 : Another approach to solve this problem by using slicing technique. One way of slicing list is by using len() method. 

Python3




# Python program to right rotate
# a list by n using list slicing
n = 3
 
list_1 = [1, 2, 3, 4, 5, 6]
list_1 = (list_1[len(list_1) - n:len(list_1)]
                 + list_1[0:len(list_1) - n])
print(list_1)


Output: 

[4, 5, 6, 1, 2, 3]

Approach #3 : In the above method, last n elements of list_1 was taken and then remaining elements of list_1. Another way is without using len() method.  

Python




# Right Rotating a list to n positions
n = 8
 
list_1 = [1, 2, 3, 4, 5, 6]
if n>len(list_1):
    n = int(n%len(list_1))
list_1 = (list_1[-n:] + list_1[:-n])
 
print(list_1)


Output : 

[4, 5, 6, 1, 2, 3]

Time complexity : O(n)

Note : list_1[:] will return the whole list as the blank space on left of slicing operator refers to start of list i.e 0 and blank space on right refers to ending position of list. 




My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!