Три элегантных способа перевернуть строку в Python

Строки в Python — упорядоченная последовательность символов. В Python нет встроенных методов, позволяющих перевернуть строку, «отзеркалить» ее. Но вообще это сделать можно, причем несколькими способами. 

Строка Python в перевернутом виде выглядит как nohtyP.

Существует три способа перевернуть строку.

1. Срезы

Повернуть строку можно с помощью срезов. Чтобы это сделать, мы просто создадим срез, который начинается с длины строки и заканчивается индексом 0.

Делается это так:

stringname[stringlength::-1] # метод 1 

Длиной строки можно и пренебречь:

stringname[::-1] # метод 2

В этом случае подразумевается, что первый аргумент — длина строки. Заканчивается он на индексе 0, а шаг — -1 (то есть, шаг назад).

str="pythonist" # исходная строка
stringlength=len(str) # вычисление длины строки
slicedString=str[stringlength::-1] # срез 
print (slicedString) # вывод в консоль перевернутой строки

Вывод:

 tsinohtyp

2. Цикл

Мы можем перевернуть строку и в цикле.

Для начала создадим массив (список) reversedString[].

После этого мы можем запустить цикл, где итерируемой переменной будет index — длина списка.

На каждой итерации цикла в reversedString добавляется символ из строки с индексом [index-1]. После этого index уменьшается на 1. 

Цикл продолжается до тех пор, пока переменная index не станет равна 0.

str = "pythonist" # исходная строка
reversedString=[]
index = len(str) # вычисляем длину строки и сохраняем ее в переменной index
while index > 0: 
    reversedString += str[ index - 1 ] # сохраняем значение str[index-1] в reverseString
    index = index - 1 # уменьшаем значение index на 1
print(reversedString) # перевернутая строка

Вывод:

 ['t', 's', 'i', 'n', 'o', 'h', 't', 'y', 'p']

3. Метод join()

Это мощный метод, использующий протокол итератора Python. Этот способ работает следующим образом. Строка поворачивается путем обратной итерации при помощи метода reversed(). После этого происходит объединение символов в новую строку при помощи метода join()

Синтаксис выглядит так:

 str="pythonist" 
 reversedstring=''.join(reversed(str))

Пример: 

str = 'pythonist' # исходная строка
reversed=''.join(reversed(str)) # метод .join() объединяет все символы, полученные в результате обратной итерации, в новую строку
print(reversed) # вывод перевернутой строки

Вывод:

 tsinohtyp