Python Zeichenfolge umkehren - 5 Möglichkeiten und die beste
Python-Strings haben keine integrierte Funktion reverse(). Es gibt jedoch verschiedene Möglichkeiten, einen String in Python umzudrehen.
1. Wie man einen String in Python umkehrt?
Einige der gängigen Methoden zum Umkehren eines Strings sind:
- Slicing verwenden, um eine umgekehrte Kopie des Strings zu erstellen.
- Verwendung einer for-Schleife und Anhängen von Zeichen in umgekehrter Reihenfolge
- Verwendung einer While-Schleife, um die Zeichen einer Zeichenfolge in umgekehrter Reihenfolge zu durchlaufen und sie anzufügen.
- Verwendung der Funktion string join() mit dem reversed() Iterator
- Eine Liste aus dem String erstellen und dann die
reverse()-Funktion aufrufen - Rekursion verwenden
1.1) Python Zeichenfolge umkehren mit Slicing
def reverse_slicing(s):
return s[::-1]
input_str = 'ABç∂EF'
if __name__ == "__main__":
print('Reverse String using slicing =', reverse_slicing(input_str))
Wenn Sie das obige Python-Skript ausführen, wird die Ausgabe sein:
Reverse String using slicing = FE∂çBA
1.2) Zeichenfolge umkehren mit einer For-Schleife
def reverse_for_loop(s):
s1 = ''
for c in s:
s1 = c + s1 # appending chars in reverse order
return s1
input_str = 'ABç∂EF'
if __name__ == "__main__":
print('Reverse String using for loop =', reverse_for_loop(input_str))
Ausgabe: String umkehren mit einer for-Schleife=FE∂çBA
1.3) Eine Zeichenkette mit einer While-Schleife umkehren
def reverse_while_loop(s):
s1 = ''
length = len(s) - 1
while length >= 0:
s1 = s1 + s[length]
length = length - 1
return s1
input_str = 'ABç∂EF'
if __name__ == "__main__":
print('Reverse String using while loop =', reverse_while_loop(input_str))
1.4) Einen String mit join() und reversed() umkehren
def reverse_join_reversed_iter(s):
s1 = ''.join(reversed(s))
return s1
1.5) Python Zeichenfolge umkehren mit der List reverse()
def reverse_list(s):
temp_list = list(s)
temp_list.reverse()
return ''.join(temp_list)
1.6) Python Zeichenkette umkehren mit Rekursion
def reverse_recursion(s):
if len(s) == 0:
return s
else:
return reverse_recursion(s[1:]) + s[0]
2. Beste Methode, um einen String in Python umzukehren
Wir können einen String durch mehrere Algorithmen umkehren. Wir haben bereits sechs davon gesehen. Aber welchen davon sollten Sie wählen, um einen String umzukehren? Wir können das Modul timeit verwenden, um mehrere Iterationen dieser Funktionen auszuführen und die durchschnittliche Zeit zu ermitteln, die zum Ausführen erforderlich ist. Alle oben genannten Funktionen sind in einem Python-Skript namens string_reverse.py gespeichert. Ich habe alle diese Funktionen nacheinander 100.000 Mal unter Verwendung des timeit-Moduls ausgeführt und den Durchschnitt der besten 5 Durchläufe ermittelt.
python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_slicing("ABç∂EF"*10)'
100000 loops, best of 5: 0.449 usec per loop
python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_list("ABç∂EF"*10)'
100000 loops, best of 5: 2.46 usec per loop
python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_join_reversed_iter("ABç∂EF"*10)'
100000 loops, best of 5: 2.49 usec per loop
python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_for_loop("ABç∂EF"*10)'
100000 loops, best of 5: 5.5 usec per loop
python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_while_loop("ABç∂EF"*10)'
100000 loops, best of 5: 9.4 usec per loop
python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_recursion("ABç∂EF"*10)'
100000 loops, best of 5: 24.3 usec per loop
Die folgende Tabelle präsentiert die Ergebnisse und die Langsamkeit eines Algorithmus im Vergleich zu dem besten.
| Algorithmus | ZeitIt Ausführungszeit (Beste von 5) | Langsamkeit |
|---|---|---|
| Schneiden | 0,449 Mikrosekunden | 1x |
| Liste umkehren() | 5,48x | |
| reversed() + join() | 5,55x | |
| für Schleife | 12,25x | |
| while Schleife | 20,94x | |
| Rekursion | 24,3 Mikrosekunden | 54,12x |
3. Zusammenfassung
Wir sollten Slicing verwenden, um einen String in Python umzukehren. Der Code dafür ist sehr einfach und klein, und wir müssen unsere eigene Logik zum Umdrehen des Strings nicht schreiben. Außerdem ist es der schnellste Weg, um einen String umzukehren, wie in den obigen Testausführungen festgestellt.
Sie können das vollständige Python-Skript und weitere Python-Beispiele aus unserem GitHub-Repository abrufen.
4. Verweise
- reversed() API Dokument
- str.join() API-Dokumentation

