Программа Python для поворота элементов списка
Списки можно использовать в Python для хранения нескольких элементов в одной переменной. Список — это один из четырех встроенных типов данных Python для хранения коллекций данных. Остальные три — кортеж, набор и словарь — выполняют разные функции. Списки составляются с использованием квадратных скобок. Поскольку списки не обязательно должны быть однородными, они являются наиболее полезным инструментом Python. Один список содержит типы данных, такие как строки, объекты и целые числа. Списки можно изменять после того, как они были созданы, поскольку они изменяемы.
В этой статье основное внимание уделяется стенографии и множеству быстрых способов выразить это однострочно или одним словом. Эта операция очень важна для кодировщика для выполнения множества задач. Мы увидим четыре разных метода выполнения этой задачи с использованием Python.
Использование понимания списка
При использовании этого метода нам просто нужно переназначить индекс каждому элементу в списке после поворота в определенную позицию. Этот метод благодаря своей меньшей реализации играет большую роль в выполнении поставленной задачи.
Алгоритм
Сначала определим список.
Используйте понимание списка.
-
Для применения двух разных сторон справа (i-index) и слева (i+index).
Распечатайте список вывода.
Синтаксис
#Для поворота влево
list_1 = [list_1[(i + 3) % len(list_1)]
#Для поворота вправо
list_1 = [list_1[(i - 3) % len(list_1)]
Пример
Здесь, в этом коде, мы использовали понимание списка для вращения элементов в списке, то есть поворота вправо и влево. Цикл for используется для перебора списка элементов.
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))
Выход
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]
Здесь, в этом коде, мы использовали понимание списка для вращения элементов в списке, то есть поворота вправо и влево. Цикл for используется для перебора списка элементов.
Использование нарезки
Этот конкретный метод является стандартным. С помощью номера вращения он просто соединяет компонент, нарезанный позже, с частью, нарезанной ранее.
Алгоритм
Сначала определим список.
Используйте метод нарезки.
Распечатайте каждый список после вращения вправо и влево.
Синтаксис
ДЛЯ НАРЕЗКИ
#Поворот влево –
list_1 = list_1[3:] + list_1[:3]
# Поворот вправо —
list_1 = list_1[-3:] + list_1[:-3]
Пример
Следующая программа переупорядочивает элементы списка. Исходный список: [11, 34, 26, 57, 92]. Сначала поверните на 3 единицы влево. То есть первые три элемента перемещаются в конец, в результате чего получается [57, 92, 11, 34, 26]. Затем поверните вправо на 3, чтобы последние три элемента переместились вперед и назад в исходные позиции [11,34,26,57,92].
Затем поверните вправо на 2, чтобы последние два элемента переместились вперед, получив [26, 57, 92 11 34]. Наконец, поверните влево на 1, чтобы переместить один элемент от начала до конца, в результате чего получится [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))
Выход
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]
Использование модуля Numpy
Используя данную ось, для вращения элементов в списке мы также можем использовать модуль numpy.roll из Python. В результате этого элементы входного массива существенно смещаются. Элемент возвращается в исходное положение, если он перемещается из первого положения в конечное.
Алгоритм
Импортируйте модуль numpy.roll.
Определите список и укажите конкретный индекс.
Распечатайте список вывода.
Пример
Создается список «номер», которому присваиваются значения 1, 2, 4, 10, 18 и 83. Переменной i присваивается значение 1. Функция np.roll() из библиотеки NumPy затем используется для номера списка с аргументом i, который сдвигает каждый элемент в списке на 1 позицию индекса (первый элемент становится последним).
import numpy as np
if __name__ == '__main__':
number = [1, 2, 4, 10, 18, 83]
i = 1
x = np.roll(number, i)
print(x)
Выход
[83 1 2 4 10 18]
Использованиеcollections.deque.rotate()
Функция Rotate() — это встроенная функция, предоставляемая классом deque в модуле коллекций и обеспечивающая вращение. Несмотря на то, что эта функция менее известна, она более полезна.
Алгоритм
Сначала импортируйте класс deque из модуля коллекции.
Определить список
Распечатать основной список
Использование Rotate() вращает элементы
Распечатайте результат.
Пример
Следующая программа использует структуру данных deque из модуля коллекций для поворота списка. Исходный список печатается, затем он поворачивается влево на 3 и распечатывается новый повернутый список. Затем он поворачивается вправо (возвращаясь в исходное положение) на 3 и распечатывает полученный список.
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))
Выход
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]
Заключение
В этой статье мы кратко объяснили четыре различных метода поворота элементов в списке.