Python Обратная Строка: Руководство по Реверсированию Строк
В этом уроке вы научитесь переворачивать строку в Python. На самом деле, вы узнаете шесть различных способов достижения этой цели. Не волнуйтесь, вы не останетесь в недоумении, какой способ лучше. Вы узнаете, какой метод лучше всего подходит для удобства использования, читабельности и скорости.
Может показаться, что в Python должен быть метод string.reverse()
. Однако, поскольку строки в Python неизменяемы, этого не происходит.
К концу этого руководства вы узнаете следующее:
Шесть различных способов перевернуть строку в Python
Когда какой подход использовать
Оглавление
Нарезка строк Python: лучший способ перевернуть строку
Лучший способ перевернуть строку в Python - использовать индексацию строк с шагом -1. Например, используя строку, такую как text='datagy'
, мы можем перевернуть её, используя backward = text[::-1]
.
Обратите внимание на то, что нам необходимо было присвоить строку переменной (даже если мы присваивали ее самой себе). Поскольку строки в Python неизменяемы, без переприсваивания строки мы бы просто выполняли итерацию по ней.
Как работает этот метод? С помощью среза строки мы итерируем по каждому элементу строки в обратном порядке. По умолчанию срез работает в формате [start:stop:step]
. Так как start
и stop
опущены, происходит индексация всей строки.
Пользовательская функция для удобства чтения при переворачивании строки Python
Создание собственной функции может сделать ваш код более понятным. Если вы хотите ясно показать, что ваша цель - инвертировать строку, создание собственной функции может сделать эту цель очевидной.
Давайте разберемся, как можно создать пользовательскую функцию на Python для переворачивания строки.
Давайте разберемся, что мы делаем с помощью функции выше:
Мы определили функцию
reverse_string(text)
, которая принимает один аргумент. Мы назвали аргументtext
, чтобы было понятно, что он должен принимать строку.В функции сначала проверяется тип аргумента. Если это строка, используется индексация строки для возвращения текста в обратном порядке.
Если аргумент является строкой, вызывается исключение
TypeError
с пользовательским сообщением о том, что необходимо передать строку.
Почему этот метод хорош? Данный метод наглядно демонстрирует, как перевернуть строку. Это особенно полезно для начинающих, которым может потребоваться помощь в понимании кода.
Каков самый быстрый способ перевернуть строку в Python?
В следующих разделах мы исследуем различные способы реверсирования строки в Python. Эти методы включены прежде всего для полноты охвата. Прежде чем перейти к этим методам, давайте выясним, какой из методов является самым быстрым.
String Slicing
0.509
reversed()
15.1
While Loop
111
For Loop
131
Recursion
366
Мы видим, что срез строки - это, безусловно, самый быстрый способ её обращения. Фактически, он намного быстрее других вариантов (более чем в 700 раз быстрее самого медленного метода, рекурсии). Именно поэтому срез строки - это метод, который я бы рекомендовал больше всего.
Другие способы перевернуть строку в Python
В следующих разделах вы узнаете, как перевернуть строку, используя другие методы. Я включил эти методы сюда только для полноты изложения. Я бы не рекомендовал использовать указанные ниже методы на практике. Тем не менее, они полезны для знания и могут пригодиться на собеседованиях по программированию.
Реверс строки Python с помощью цикла For
Поскольку строки в Python являются итерируемыми объектами (как это демонстрируется на нашем примере использования индексации строк), мы можем проходить по ним, используя цикл for в Python.
Используя цикл for, мы можем перебирать каждый символ в строке и создавать перевернутую строку. Давайте посмотрим, как выглядит этот процесс:
Давайте разберемся, как мы используем цикл for для инвертирования строки в Python:
Мы инициализируем строку (
text
) и пустую строку (reversed_string
)Мы затем перебираем каждый символ в строке
Мы добавляем текущую перевернутую строку к символу цикла.
Наконец, мы печатаем перевернутую строку
Если вам трудно представить, как это выглядит, давайте посмотрим, как выглядят все напечатанные утверждения:
Мы видим, что каждый символ доступен, и текущие перевернутые части добавляются в конец этой строки.
Реверсирование строки Python с помощью цикла while
Циклы while в Python - это методы неопределенной итерации, что означает, что они будут продолжаться до тех пор, пока не будет выполнено условие. Давайте посмотрим, как мы можем использовать цикл while для реверсирования строки в Python:
Этот пример выглядит немного сложнее, чем наш цикл for (и это действительно так!). Давайте посмотрим, что происходит за кулисами, чтобы понять, как работает этот подход:
Мы инициализируем три переменные:
text
, которая содержит нашу строку,reversed_string
, которая является пустой строкой, иi
, которая равна длине строки.Затем мы создаем цикл
while
, который продолжает выполняться, пока значениеi
больше 0 (это означает, что еще остались символы).Используем оператор присваивания с добавлением += для поочередного добавления символов с конца строки.
Наконец, мы отнимаем 1 от значения
i
, чтобы сдвинуться на один символ влево.
Переверните строку с помощью обратной функции Python
Python включает встроенную функцию reversed()
, которая позволяет изменить порядок элементов в итерируемом объекте (например, в списке или строке) и возвращает объект с элементами в обратном порядке.
Мы можем использовать эту функцию вместе с методом .join()
строки для возвращения строки в обратном порядке. Давайте посмотрим, как мы можем перевернуть строку, используя функцию reversed().
В этом коде происходит довольно много, так что давайте разберём его по частям:
Мы создаем нашу строку в переменной
text
Затем мы передаём строку в функцию
reversed()
Наконец, мы объединяем объект обратно в строку, используя метод
.join()
Это очень чистый метод, который хорошо работает. Особенно хорошо, что в него уже встроена обработка ошибок. Это означает, что если переданный объект не является итерируемым, будет вызвано исключение TypeError
Переверните строку Python с помощью рекурсии
Python рекурсия может показаться сложным концептом, но это отличное понятие, которое стоит иметь в виду для собеседований по программированию. Признаюсь, я включаю этот пример в основном ради забавы. Я действительно не могу представить себе ситуацию, когда мне когда-либо понадобится использовать этот метод вне собеседования.
Давайте взглянем на то, как выглядит наш рекурсивный метод, а затем погрузимся в изучение его работы. Рекурсия работает, создавая функцию, которая вызывает сама себя, пока не достигнет базового случая.
В приведенном выше примере функция reverse_a_string()
вызывает сама себя до тех пор, пока не будет достигнуто базовое условие (когда длина строки равна 1).
Этот метод значительно уступает по читабельности и является самым длинным. По этой причине я не рекомендую использовать этот подход, если только это абсолютно необходимо.
Заключение
В этом уроке вы научились использовать Python для переворачивания строки. Это важный навык, который нужно знать, особенно на собеседованиях для начинающих программистов. Вы узнали лучший метод достижения этой цели - индексацию строк, и как превратить это в очень понятную функцию, чтобы помочь читателям вашего кода. Вы также изучили некоторые альтернативные методы, включая использование циклов for и while, а также методы списка и рекурсию.
Чтобы узнать больше об индексации строк в Python, ознакомьтесь с официальной документацией здесь.
Дополнительные ресурсы
Чтобы узнать больше о связанных темах, ознакомьтесь с ресурсами ниже:
Как перевернуть список Python (6 способов)
Python: перевернуть число (3 простых способа)
Python List sort(): подробное руководство по сортировке списков
Last updated