Home  >  Article  >  Backend Development  >  Python program to rotate list elements

Python program to rotate list elements

WBOY
WBOYforward
2023-08-19 10:01:091412browse

Python program to rotate list elements

In Python, you can use lists to maintain multiple items in a single variable. Lists are one of Python's four built-in data types used to store collections of data. The other three types, tuples, sets, and dictionaries, each have different functions. Lists are constructed using square brackets. Since lists don't have to be homogeneous, they are the most useful tools in Python. A list can contain data types such as strings, objects, and integers. Lists can be modified after they are generated because they are mutable.

This article focuses on shorthand and the many shortcuts for expressing this concept in a sentence or word. This operation is very important for programmers and can accomplish a lot of work. We'll use Python to show four different ways to accomplish this task.

Using The List Comprehension

When using this method, we only need to reassign the index of each element in the list after rotating it at a specific position. Due to its smaller implementation, this approach plays an important role in completing the task.

Algorithm

  • Defining a list first.

  • Use the list comprehension.

  • For applying two different sides right(i-index) and left(i index).

  • Print the output list.

grammar

#Left rotation

list_1 = [list_1[(i + 3) % len(list_1)]

#For right rotate

list_1 = [list_1[(i - 3) % len(list_1)]

Example

Here, in this code we have used the list comprehension to rotate the elements in a list that is the right and left rotate. For loop is used to iterate through the list of elements.

list_1 = [10, 14, 26, 37, 42]
print (" Primary list : " + str(list_1))
list_1 = [list_1[(i + 3) % len(list_1)]
   for i, x in enumerate(list_1)]
print ("Output of the list after left rotate by 3 : " + str(list_1))
list_1 = [list_1[(i - 3) % len(list_1)]
   for i, x in enumerate(list_1)]
print ("Output of the list after right rotate by 3(back to primary list) : "+str(list_1))
list_1 = [list_1[(i + 2) % len(list_1)]
   for i, x in enumerate(list_1)]
print ("Output of the list after left rotate by 2 : " + str(list_1))
list_1 = [list_1[(i - 2) % len(list_1)]
   for i, x in enumerate(list_1)]
print ("Output of the list after right rotate by 2 : "+ str(list_1))

Output

Primary list : [10, 14, 26, 37, 42]
Output of the list after left rotate by 3 : [37, 42, 10, 14, 26]
Output of the list after right rotate by 3(back to primary list) : [10, 14, 26, 37, 42]
Output of the list after left rotate by 2 : [26, 37, 42, 10, 14]
Output of the list after right rotate by 2 : [10, 14, 26, 37, 42]

Here, in this code we have used the list comprehension to rotate the elements in a list that is the right and left rotate. For loop is used to iterate through the list of elements.

Use slices

This specific technique is the standard technique. With the rotation number, it simply joins the later-sliced ​​component to the earlier-sliced ​​part.

Algorithm

  • Defining a list first.

  • Use slicing method.

  • Print each list after right and left rotation.

grammar

FOR SLICING

#Left rotation -

list_1 = list_1[3:] + list_1[:3]

#Rotate right -

list_1 = list_1[-3:] + list_1[:-3]

Example

The following program rearranges the elements of a list. The original list is [11, 34, 26, 57, 92]. First rotate 3 units to the left. That is, the first three elements are moved to the end, resulting in [57, 92, 11, 34, 26]. Then rotate right by 3 so the last three elements move back and forth to their original positions [11,34,26,57,92].

Then rotate right 2 times to move the last two elements forward, getting [26, 57, 92, 11, 34]. Finally, rotate left once and move one element from the beginning to the end, getting [57, 92, 11, 34, 26].

list_1 = [11, 34, 26, 57, 92]
print (" Primary list : " + str(list_1))
list_1 = list_1[3:] + list_1[:3]
print ("Output of the list after left rotate by 3 : " + str(list_1))
list_1 = list_1[-3:] + list_1[:-3]
print ("Output of the list after right rotate by 3(back to Primary list) : "+str(list_1))
list_1 = list_1[-2:] + list_1[:-2]
print ("Output of the list after right rotate by 2 : "+ str(list_1))
list_1 = list_1[1:] + list_1[:1]
print ("Output of the list after left rotate by 1 : " + str(list_1))

Output

Primary list : [11, 34, 26, 57, 92]
Output of the list after left rotate by 3 : [57, 92, 11, 34, 26]
Output of the list after right rotate by 3(back to Primary list) : [11, 34, 26, 57, 92]
Output of the list after right rotate by 2 : [57, 92, 11, 34, 26]
Output of the list after left rotate by 1 : [92, 11, 34, 26, 57]

Using The Numpy Module

Using the given axis, we can also use the numpy.roll module in python to rotate the elements in the list. The elements of the input array will be moved accordingly. If an element is moved from the first position to the last position, it will return to its original position.

Algorithm

  • Import numpy.roll module

  • Define the list and give the particular index.

  • Print the output list.

Example

A list 'number' is created and assigned the values ​​1, 2, 4, 10, 18 and 83. The variable i is set to 1. The np.roll() function from the NumPy library is then used on the list number with an argument of i which shifts each element in the list by 1 index position (the first element becomes last).

import numpy as np
if __name__ == '__main__':
   number = [1, 2, 4, 10, 18, 83]
   i = 1
   x = np.roll(number, i)
   print(x)

Output

[83 1 2 4 10 18]

Usingcollections.deque.rotate()

The rotate() function is a built-in function provided by the deque class in the collections module and is used to implement rotation operations. Although less well known, this function is more practical.

Algorithm

  • First import the deque class from the collection module.

  • Define a list

  • Print main list

  • Use the rotate() function to rotate elements

  • Print the output.

Example

The following program uses the deque data structure from the collections module to rotate a list. The original list is printed, then it rotates left by 3 and prints out the new rotated list. It then rotates right (back to its original position ) by 3 and prints out the resulting list.

from collections import deque
list_1 = [31, 84, 76, 97, 82]
print ("Primary list : " + str(list_1))
list_1 = deque(list_1)
list_1.rotate(-3)
list_1 = list(list_1)
print ("Output list after left rotate by 3 : " + str(list_1))
list_1 = deque(list_1)
list_1.rotate(3)
list_1 = list(list_1)
print ("Output list after right rotate by 3(back to primary list) : "+ str(list_1))

Output

Primary list : [31, 84, 76, 97, 82]
Output list after left rotate by 3 : [97, 82, 31, 84, 76]
Output list after right rotate by 3(back to primary list) : [31, 84, 76, 97, 82]

in conclusion

In this article, we briefly explain four different ways to rotate elements in a list.

The above is the detailed content of Python program to rotate list elements. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete