Frage

Ich war auf der Suche nach einer Möglichkeit, einen String zurück, und nach kurzer Suche auf Google zu drucken, fand ich diese Methode:

Angenommen a ist ein String-Variable. Dadurch wird die a String zurück nach hinten:

a[::-1]

Kann mir jemand erklären, wie das funktioniert?

Andere Tipps

Die „-1“ repräsentiert den Teil „Schritt“ Teil des Slicing-in diesem Fall ist es das Zeichenfolge 1 Zeichen zu einer Zeit durchläuft, aber nach hinten (ein negativer Schritt Mittel von dem Ende der Zeichenfolge beginnen). Wenn Sie den Schritt angeben 2 sein, zum Beispiel, würden Sie jedes andere Zeichen der Zeichenfolge erhalten, mit dem ersten Start. Wenn Sie einen Schritt von -2 angeben, dann würden Sie jedes anderes Zeichen der Zeichenfolge erhalten, mit dem letzten Zeichen beginnen und rückwärts arbeiten.

Also, kurz gesagt, wenn a = '12345':

  • a[::2] wird 135
  • a[::-1] wird 54321
  • a[::-2] wird 531

Ich denke, die folgenden ein bisschen mehr Sinn für Druck Strings rückwärts macht, aber vielleicht ist das nur mir:

for char in reversed( myString ):  
  print( char, end = "" )

Es ist der erweiterte Slice-Notation :

sequence[start:end:step]

In diesem Fall Schritt -1 bedeutet, rückwärts, und das Weglassen der Anfang und das Ende bedeutet, dass Sie die gesamte Zeichenfolge wollen.

Es Scheibe Notation in Python genannt und Sie können ein bisschen mehr lesen, wie es hier funktioniert:

Erklären Pythons slice Notation

Es ist erweitern Slicing mit - ein String eine Sequenz in Python ist, und teilt einige Methoden mit anderen Sequenzen (nämlich Listen und Tupeln). Es gibt drei Teile zu schneiden - Start, Stopp und Schritt. Alle von ihnen Standardwerte haben - Start automatisch auf 0 standardmäßig len (Sequenz) zu stoppen, und Schritt standardmäßig auf 1. Bis spätestens [:: - 1] spezifiziert Sie eine „alle Elemente der Reihe sind zu sagen, von Anfang an beginnen bis zum Ende nach hinten einer nach dem anderen gehen.

Diese Funktion in Python 2.3.5 eingeführt wurde, und Sie können mehr in der Was Neue docs ist.

[:: - 1] gibt ein Stück der Zeichenfolge ein. Die vollständige Syntax lautet a[begin:end:step] was ein [beginnen], einen [begin + Schritt], ... a [end-1]. Wenn der Schritt negativ ist, Sie am Ende beginnen und beginnen zu bewegen.

Schließlich beginnt standardmäßig auf den Beginn der Sequenz, Ende zu Ende, und Schritt auf -1.

Ich würde es tun, wie folgt:

variable = "string"
message = ""
for b in variable:
    message = b+message
print (message)

und er druckt: gnirts

ein String ist im Wesentlichen eine Folge von Zeichen und so der Schneidvorgang funktioniert auf sich. Was Sie tun, ist in der Tat:

-> eine Scheibe von 'a' von Anfang erhält rückwärts in Schritten von 1 zu beenden

.

Es ist grundlegende Schritt Notation, sollten Sie die Funktionalität von:

a [2: 4: 2]

Was ist der Index passiert ist 2 zwischen Position in Scheiben geschnitten und 4, was die dritten Variable tut, ist es stellt das Schrittweite von dem ersten Wert zu starten. In diesem Fall wäre es eine Rückkehr [2], da a [4] eine obere Grenze ist nur zwei Werte sind Rückgabe- und kein zweiter Schritt erfolgt. Die (-) minus Bediener einfach kehrt die Schrittausgabe

.

Betrachten Sie die Liste unter

l=[12,23,345,456,67,7,945,467]

Ein weiterer Trick, um eine Liste für die Umkehrung kann sein:

l[len(l):-len(l)-1:-1] [467, 945, 7, 67, 456, 345, 23, 12]

l[:-len(l)-1:-1] [467, 945, 7, 67, 456, 345, 23, 12]

l[len(l)::-1] [467, 945, 7, 67, 456, 345, 23, 12]

können wir append verwenden und Pop, es zu tun

def rev(s):
    i = list(s)
    o = list()
    while len(i) > 0:
        o.append(t.pop())

    return ''.join(o)

Ohne Verwendung umgekehrt oder [:: - 1], hier ist eine einfache Version auf Rekursion basierte Ich würde sein die meisten lesbar:

def reverse(s):

  if len(s)==2:
    return s[-1] + s[0]

  if len(s)==1:
    return s[0]

  return s[-1] + reverse(s[1:len(s)-1]) + s[0]

erweiterte Slice-Syntax

word = input ("Type a word which you want to reverse: ")
def reverse(word):
  word = word[::-1]
  return word
print (reverse(word))

Sie können umgekehrt () Funktion verwenden. Zum Beispiel

x = "abcd"
for i in reversed(x):
        print(i, end="")
print("\n")
L = [1,2,3]
for i in reversed(L):
        print(i, end="")

druckt dcba und 321

Die ersten beiden Grenzen Default auf 0 und die Länge der Sequenz, wie zuvor, und ein Schritt von -1 zeigt an, dass die Scheibe von rechts gehen sollte statt dem üblichen links nach rechts nach links. Die Wirkung ist also die Reihenfolge umgekehrt werden.

name="ravi"
print(name[::-1]) #ivar
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top