Python program to rotate list elements

WBOY
Release: 2023-08-19 10:01:09
forward
1414 people have browsed it

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)]
Copy after login

#For right rotate

list_1 = [list_1[(i - 3) % len(list_1)]
Copy after login

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))
Copy after login

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]
Copy after login

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]
Copy after login

#Rotate right -

list_1 = list_1[-3:] + list_1[:-3]
Copy after login

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))
Copy after login

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]
Copy after login

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)
Copy after login

Output

[83 1 2 4 10 18]
Copy after login

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))
Copy after login

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]
Copy after login

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!

Related labels:
source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template