Обратная строка Python: как перевернуть строку в Python

В Python нет встроенной функции reverse (). Однако в Python есть разные способы перевернуть любую строку. Самый быстрый (и самый простой?) Способ — использовать срез с шагом назад, -1 . Обращение строки Python не так часто используется в повседневном программировании, но это все еще популярный вопрос для собеседований.

Как перевернуть строку в Python

Вот некоторые из распространенных способов перевернуть строку.

  1. Использование нарезки для создания обратной копии строки.
  2. Использование цикла for и добавление символов в обратном порядке.
  3. Использование цикла while для перебора строковых символов в обратном порядке и их добавления.
  4. Использование строки Функция join () с итератором reversed ().
  5. Создание списка из строки и последующий вызов его функции reverse () .
  6. Использование рекурсии.

См. следующий пример.

 name = 'AppDividend'reversedName =' dnediviDppA  '

В приведенном выше коде первая переменная имени — это стандартная переменная, а затем reversedName — обратная строка.

Обращение Python Str Создание с помощью нарезки

Строки следуют протоколу последовательности в Python. И все последовательности поддерживают интересную функцию, называемую нарезкой . Вы можете рассматривать нарезку как расширение синтаксиса индексации квадратных скобок.

Он включает частный случай, когда нарезка последовательности с помощью « [:: — 1] ”Производит перевернутую копию строки . Поскольку строки Python являются последовательностями, это быстрый и простой способ получить обратную копию строки.

См. следующий пример кода.

 # app.pyname = 'AppDividend'reversedName = name [:: - 1] print (reversedName) 

См. вывод.

Это коротко и мило, но, на мой взгляд, обратная сторона обращения строки с синтаксисом нарезки заключается в том, что он использует расширенную функцию Python, которую некоторые разработчики назвали бы «загадочной».

Моя самая большая проблема заключается в том, что он использует синтаксис среза «[:: — 1]» недостаточно передает информацию, чтобы создать перевернутую копию исходной строки.

См. второй пример Python Reverse String с использованием Slicing.

 # app.pydef reverse_string (str): return str [:: - 1] str_data = 'Game of Thrones'  if __name__ == "__main__": print ('Обратная строка с использованием Python среза =', reverse_string (str_data)) 

См. вывод ниже.

Использование цикла для переворота строки

В приведенном ниже примере мы обращаем строку с помощью цикла for.

 # app. pydef reverse_string (str): string = "" for i in str: string = i + string return stringstr_data = 'Game of Thrones'if __name__ == "__main__": print (' Reverse String using For Loop = ', reverse_string (str_data  )) 

См. вывод ниже.

Python Reverse String с использованием цикла While Loop

См. следующий код.

 # app.pydef reverse_string (input  ): string = "" length = len (input) - 1, а length> = 0: string = string + input [length] length = length - 1 return stringstr_data = 'Game of Thrones'if __name__ == "__main__": print  ('Обратная строка с использованием цикла While Loop =', reverse_string (str_data)) 

См. Вывод.

Обратная строка Python с использованием join () и reversed ()

Обращение строки с использованием обратной итерации со встроенной функцией — еще один вариант. Вы получаете обратный итератор, который можно использовать для циклического перебора элементов в строке в обратном порядке.

Использование функции reversed () не изменяет исходную строку (что в любом случае не будет работать, поскольку строки являются неизменяемыми объектами в Python.) Что происходит, так это то, что вы получаете «представление» в существующую строку, которую можете использовать для просмотра всех элементов в обратный порядок.

Теперь мы использовали функцию Python join () и функцию reversed () вместе, чтобы получить обратную строку. См. Пример ниже.

 # app.pydef reverse_string (input): string = '' .join (reversed (input)) return stringstr_data = 'Game of Thrones'if __name__ == "__main__"  : print ('Reverse String using For Loop =', reverse_string (str_data)) 

В приведенном выше фрагменте кода использовался метод .join () для объединения всех символы строки, полученные в результате обратной итерации в новую строку.

Теперь посмотрим на результат.

Мне нравится описанный выше подход обратного итератора для реверсирования строк в Python.

Он четко передает, что происходит, и даже кто-то новичок в этом языке со временем поймет, что я создаю перевернутую копию исходной строки.

И хотя понимание того, как работают итераторы на более глубоком уровне, полезно, нет необходимости использовать эту технику .

Обратная строка Python с использованием рекурсии

См. приведенный ниже код.

 # app.  Pydef Revers  e_string (input): if len (input) == 0: return input else: return reverse_string (input [1:]) + input [0] str_data = 'Игра престолов' if __name__ == "__main__": print ('  Обратить строку с помощью Recursion = ', reverse_string (str_data)) 

Теперь посмотрим на результат.

Сравнение производительности

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

Нарезка — самый быстрый подход, подход reversed () в 8 раз медленнее, чем нарезка, а затем цикл while и for также занимает некоторое время .

Если вам интересно, какой лучший способ — перевернуть строку в Python, мой ответ: «Это зависит от ситуации».

Однако есть аргумент в пользу того, что подход нарезки в восемь раз быстрее, безусловно, следует использовать из соображений производительности. Стоимость производительности всегда является хорошим параметром, на основе которого вы должны создавать свое веб-приложение. этот пример.

Оцените статью
nanomode.ru
Добавить комментарий