Поиск по сайту:

Программа 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]

Заключение

В этой статье мы кратко объяснили четыре различных метода поворота элементов в списке.

Статьи по данной тематике: