Verschieben oder drehen ein Array in Python
-
Array in Python mit dem Modul
collections
verschieben -
Array verschieben in Python mit der Methode
numpy.roll()
- Array in Python mit Hilfe des Array Slicing verschieben
Dieser Artikel erklärt, wie man ein Array in Python nach links oder rechts verschiebt oder dreht. Das Drehen eines Arrays bedeutet, dass wir jeden Wert des Arrays um n
Positionen nach links oder rechts verschieben oder verschieben. Und Elemente ganz rechts oder ganz links werden an das andere Ende des Arrays verschoben.
Wir können ein Array in Python mit verschiedenen unten erläuterten Methoden verschieben oder drehen.
Array in Python mit dem Modul collections
verschieben
Wir können die Methode deque.rotate(n)
des Moduls collections
verwenden, um ein Array in Python zu drehen. Die Methode deque.rotate(n)
dreht das Objekt der Klasse deque
um n
Positionen, wobei das Vorzeichen von n
angibt, ob die deque
nach links oder rechts gedreht werden soll.
Wenn der Wert von n
positiv ist, wird der Eingang von links nach rechts gedreht, und wenn n
negativ ist, wird der Eingang von rechts nach links gedreht. Der folgende Code zeigt, wie ein Array mit der Methode deque.rotate(n)
in Python gedreht wird.
from collections import deque
myarray = deque([1, 2, 3, 4, 5, 6])
myarray.rotate(2) # rotate right
print(list(myarray))
myarray.rotate(-3) # rotate left
print(list(myarray))
Ausgabe:
[5, 6, 1, 2, 3, 4]
[2, 3, 4, 5, 6, 1]
Array verschieben in Python mit der Methode numpy.roll()
Die Methode numpy.roll(array, shift, axis)
nimmt das array
als Eingabe und dreht es auf die Positionen, die dem Wert shift
entsprechen. Wenn das array
ein zweidimensionales Array ist, müssen wir angeben, auf welcher Achse wir die Drehung anwenden müssen; Andernfalls wendet die Methode numpy.roll()
die Drehung auf beide Achsen an.
Genau wie die Methode deque.rotate()
dreht auch die Methode numpy.roll()
das Array von rechts nach links, wenn der Wert positiv ist, und von rechts nach links, wenn der Wert negativ ist. Der folgende Beispielcode zeigt, wie ein Array in Python mit der Methode numpy.roll()
gedreht wird.
import numpy as np
myarray = np.array([1, 2, 3, 4, 5, 6])
newarray = np.roll(myarray, 2) # rotate right
print(newarray)
newarray = np.roll(myarray, -2) # rotate left
print(newarray)
Ausgabe:
[5 6 1 2 3 4]
[3 4 5 6 1 2]
Array in Python mit Hilfe des Array Slicing verschieben
Wir können die Rotationsfunktion auch mit dem Array-Slicing in Python implementieren. Dieses Verfahren benötigt keine zusätzliche Bibliothek, ist aber weniger effizient als die oben erläuterten Verfahren.
Der folgende Beispielcode zeigt, wie Sie das Array-Slicing verwenden, um ein Array in Python zu drehen oder zu verschieben.
def rotate(input, n):
return input[n:] + input[:n]
myarray = [1, 3, 5, 7, 9]
print(rotate(myarray, 2)) # rotate left
print(rotate(myarray, -2)) # rotate right
Ausgabe:
[5, 7, 9, 1, 3]
[7, 9, 1, 3, 5]