Zephyrnet-Logo

So kehren Sie eine Zeichenfolge in Python um

Datum:

Einleitung

Obwohl dies in keinem realen Szenario üblich ist, Saiten umkehren ist eine ziemlich häufige Operation, mit der Sie in einem Vorstellungsgespräch konfrontiert werden. Vor allem, wenn Sie sich für eine Stelle in einer Programmiersprache bewerben, die keine eingebauten Methoden zum Umkehren von Zeichenfolgen hat. Indem er Sie bittet, eine Zeichenfolge umzukehren, kann ein Interviewer einen ziemlich genauen Eindruck davon bekommen, wie Sie an die Analyse des Problems herangehen und eine Lösung von Grund auf neu entwickeln.

Da es viele Lösungen für dieses Problem geben kann, ist dies auch Ihre Chance, zu glänzen und Ihr Bewusstsein für die unterschiedlichen Ausführungsgeschwindigkeiten zwischen verschiedenen Algorithmen zu zeigen, um so die bestmögliche Lösung zu schaffen.

In diesem Artikel werfen wir einen Blick darauf, wie man einen String in Python umkehrt. Wir prüfen mehrere mögliche Lösungen und vergleichen sie, damit Sie diejenige auswählen können, die Ihren Anforderungen am besten entspricht.

Offensichtlich sind Interviews nicht der einzige Ort, an dem Sie mit der Notwendigkeit konfrontiert werden können, eine Zeichenfolge umzukehren – zum Beispiel gibt es einige Probleme mit regulären Ausdrücken, die viel einfacher zu lösen sind, wenn Sie mit umgekehrten Zeichenfolgen arbeiten.

Zeichenfolgen in Python

Schnur in Python ist ein unveränderliches Array von Bytes – genauer gesagt eine Folge von Bytes, die Unicode-Zeichen darstellen. Tatsächlich wird eine Zeichenfolge im Code als eine Folge von Zeichen geschrieben, die von einem umgeben sind Paar Anführungszeichen (einfach oder doppelt), aber sie werden intern als Folge von Unicode-Codes gespeichert:

example_str = "Hello World!"


Hinweis: Das eigentliche Objekt, das zum Umgang mit Zeichenfolgen in Python verwendet wird, heißt the str Objekt. Es repräsentiert im Wesentlichen einen String-Datentyp.

Eine wichtige Eigenschaft von Strings in Python ist, dass sie es sind unveränderlich, was bedeutet, dass sie nach ihrer Erstellung nicht mehr geändert werden können. Die einzige Möglichkeit, einen String zu modifizieren, besteht darin, seine modifizierte Kopie zu erstellen, was viele Operationen an Strings verkompliziert. Bei dem, der uns in diesem Artikel besonders interessiert, ist es nicht anders – der Betrieb von einen String umkehren.

Einen String in Python umkehren

Nachdem wir nun alle Grundlagen behandelt haben, können wir uns ansehen, wie man einen String in Python tatsächlich umkehrt. Wie wir bereits erwähnt haben, gibt es mehrere Möglichkeiten, wie Sie dies tun können – in diesem Artikel werden wir einige der am häufigsten verwendeten behandeln. Jeder Ansatz hat seine eigenen Stärken und Schwächen, einige sind effizienter, aber weniger lesbar. Auf der anderen Seite sind einige wirklich gut lesbar und leicht zu verstehen, aber auf Kosten der Effizienz.

In den folgenden Abschnitten werden wir die Zeichenfolge umkehren "Hello World!", die umgekehrt werden sollte "!dlroW olleH":

example_str = "Hello World!"

Empfohlene Lösung: Verwenden der Slice-Notation

Eine weitere wichtige Eigenschaft von Strings in Python ist, dass sie es sind schneidbar. Das bedeutet, dass ein Teilstring aus dem ursprünglichen String extrahiert werden kann – und Python bietet eine ziemlich einfache Möglichkeit, dies mit dem zu tun Slice-Operator.

Der Slicing-Operator in Python hat die folgende Syntax – [start:end:step]. Es extrahiert eine Teilzeichenfolge beginnend mit der start zu den end. Wenn der step ist eine positive Zahl, die start muss kleiner sein als die end, daher erstellt der Slicing-Operator eine Teilzeichenfolge, die sich bewegt vorwärts. Auf der anderen Seite, wenn step eine negative Zahl ist, wird der Teilstring laufend erstellt rückwärts im Originalstring. Wenn Sie also die step zu -1 und geh start und end leer, werden Sie effektiv einen ganzen String umkehren:

example_str = "Hello World!"
reversed_str = example_str[::-1]
print(reversed_str)

Wir haben den Slicing-Operator auf unserem verwendet example_str auf die zuvor beschriebene Weise, die uns die umgekehrte Version unserer ursprünglichen Zeichenfolge liefert:

"!dlroW olleH"

Dieser Ansatz zum Umkehren einer Zeichenfolge in Python gilt als am effizientesten für die großen Eingabezeichenfolgen, aber das geht auf Kosten schlechte Lesbarkeit – insbesondere für diejenigen, die mit der Slicing-Notation in Python nicht vertraut sind. Um das zu verbessern, können wir Wickeln Sie das Slicing in eine Funktion, wodurch die Lesbarkeit des endgültigen Codes erhöht wird:

def reverse_string(s):
    return s[::-1]

Später würden wir diese Funktion anstelle des einfachen Slicing-Operators verwenden, um die gewünschte Zeichenfolge umzukehren, und die resultierende Zeichenfolge ist dieselbe wie zuvor – "!dlroW olleH":

reversed_str = reverse_string(example_str)

Hinweis: Es ist im Allgemeinen eine gute Praxis, jeden Abschnitt eines Codes in eine Funktion einzuschließen! Neben der Verbesserung der Lesbarkeit des Codes hilft es Ihnen tatsächlich, modulareren und wiederverwendbaren Code zu erstellen. Daher können Sie jeden der folgenden Codeausschnitte auf die gleiche Weise wie in diesem Abschnitt gezeigt in die Funktion einschließen.

Die richtigen beitreten() und rückgängig gemacht()

Obwohl das Slicing in Bezug auf die Geschwindigkeit am besten abschneidet, besteht die solide Alternative in Bezug auf die Lesbarkeit darin, zwei integrierte Python-Methoden zu kombinieren – str.join() und reversed().

Zuallererst reversed() gibt ein umgekehrtes zurück Iterator für die als Argument übergebene Zeichenfolge. Dadurch können wir den ursprünglichen String rückwärts durchgehen und seine Zeichen mit an den leeren String anhängen str.join() Funktion:

example_str = "Hello World!"
reversed_str = ''.join(reversed(example_str))
print(reversed_str)

Dadurch wird eine umgekehrte Kopie der ursprünglichen Zeichenfolge erstellt:

Sehen Sie sich unseren praxisnahen, praktischen Leitfaden zum Erlernen von Git an, mit Best Practices, branchenweit akzeptierten Standards und einem mitgelieferten Spickzettel. Hören Sie auf, Git-Befehle zu googeln und tatsächlich in Verbindung, um es!

"!dlroW olleH"

Verwendung eines für Loop

Schleifen können auch verwendet werden, um eine Zeichenfolge in Python umzukehren – die erste, die wir betrachten werden, ist die for Schleife. Wir können es verwenden, um den ursprünglichen String in beide Richtungen zu durchlaufen – vorwärts und rückwärts. Da wir einen String umkehren wollen, fällt uns als erstes ein, den String vom Ende bis zum Anfang zu durchlaufen und jedes Zeichen an den neuen String anzuhängen. Zu diesem Zweck verwenden wir die reversed() Funktion:

example_str = "Hello World!"
reversed_str = ""
for i in reversed(example_str):
    reversed_str += i
print(reversed_str)

Wir haben iteriert rückwärts über die ursprüngliche Zeichenfolge und fügte jedes Zeichen an die an resulting_str, die die umgekehrte Version von speichert example_str schlussendlich:

"!dlroW olleH"

Hinweis: Beachten Sie, wie wir jedes Zeichen der umgekehrten Zeichenfolge hinzugefügt haben, aber Zeichenfolgen in Python sind unveränderlich. Wir können das tun, weil Python im Wesentlichen jedes Mal, wenn wir ein Zeichen anhängen, eine modifizierte Kopie eines Strings erstellt, bevor das Ergebnis als unveränderlicher String verfestigt und zurückgegeben wird.

Ein alternativer Ansatz besteht darin, über die ursprüngliche Zeichenfolge zu iterieren vorwärts, vom Anfang bis zum Ende, und erstellen Sie die umgekehrte Version der ursprünglichen Zeichenfolge in der Schleife selbst:

example_str = "Hello World!"
reversed_str = ""
for i in example_str:
    reversed_str = i + reversed_str
print(reversed_str)

Dies ergibt das gleiche Ergebnis wie die Verwendung des umgekehrten Iterators in der Schleife.

Verwendung eines während Loop

Eine weitere Schleife, die wir verwenden können, um eine Zeichenfolge umzukehren, ist die while Schleife. Dieser Ansatz ist etwas komplizierter als andere, kann Ihnen aber einen guten Einblick geben, wie das Umkehren von Zeichenfolgen auf einer niedrigeren Ebene funktioniert:

example_str = "Hello World!"
reversed_str = ""
i = len(example_str) - 1
while i >= 0:
    reversed_str += example_str[i]
    i -= 1
print(reversed_str)

Was führt zu:

"!dlroW olleH"

Zusammenfassung

Wie wir in diesem Artikel gesehen haben, gibt es viele Ansätze, wie man eine Zeichenfolge in Python umkehrt, und jeder von ihnen hat seine Stärken und Schwächen. Im Allgemeinen ist der eine Weg, den Sie für die meiste Zeit wählen sollten, der Aufschneiden Operator – es ist das effizienteste und am meisten Pythonisch Möglichkeit, eine Zeichenfolge umzukehren. Andere Ansätze sind weniger effizient, überlegen Sie es sich daher zweimal, bevor Sie sie verwenden, wenn die Ausführungsgeschwindigkeit in Ihrem Code entscheidend ist.

spot_img

Neueste Intelligenz

spot_img