Як перевернути рядок Python (5 методи)

⚡ Розумний підсумок

Revзаміна рядка в Python використовує п'ять перевірених методів: цикл for, цикл while, нотацію зрізу [::-1], функцію reversed() та рекурсію. Lessохоплюють синтаксис, приклади коду, вивід та тести продуктивності.

  • 🔁 Для циклу: Ітерувати та об'єднувати символи.
  • 🔂 Цикл while: Зменшення індексу та додавання символів.
  • Розрізання [::-1]: Найшвидший метод, приблизно в 7 разів швидший, ніж зворотний перелік.
  • 📦 обернений() + з'єднання: Ітератор, що зручно використовує пам'ять, для великих рядків.
  • 🔄 Рекурсія: Рекурсивно виконується на рядку string[1:], доки не стане порожнім.
  • 🤖 Рефакторинг ШІ: Штучний інтелект перетворює цикли на нарізання.

Reverse рядок у Python

Рядок — це впорядкований список або послідовність символів. Рядки — це одна зі структур даних, яка постачається Python. Коли ви працюєте з рядками в Python, ви можете перевернути всі символи. Хорошим прикладом може бути, коли ви створюєте паліндромну гру.

Перевернутий рядок має свій перший символ як останній символ і так далі. однак, Python не має вбудованої функції для реверсування рядків, але це методи, які ви можете використовувати.

У цьому підручнику ви дізнаєтесь про різні методи перевертання рядка Python.

Метод 1: Reverse вставити Python за допомогою циклу For

Перший метод для реверсування рядків полягає у використанні циклу for, як у фрагменті коду нижче:

Python Code:

# function for reversing a string
def reverse_string(string):
    # an empty string for storing reversed string
    reversed_string = ""
    # looping through the string
    for char in string:
        # reversing the string
        reversed_string = char + reversed_string
    # returning a reversed string
    return reversed_string

# the string to reverse
string = "Guru99"
# printing a message
print(f"String Reversal using a for loop")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse_string(string)}")

вихід:

String Reversal using a for loop
Original String: Guru99
Reversed String: 99uruG

Code Пояснення:

  • У цьому фрагменті коду ми можемо використовувати reverse_string() функція для реверсування рядка, що приймає заданий рядок як аргумент.
  • Усередині нього ми можемо створити порожній рядок для зберігання оберненого рядка, а потім ми дивимосяping через струну.
  • Символи міняються місцями та призначаються перевернутий_рядок змінна.
  • Нарешті, останній рядок у функції повертає перевернутий рядок.
  • Щоб відобразити результат, зробіть функціональний виклик усередині print () функція за допомогою f-рядка.

Метод 2: Reverse вставити Python за допомогою циклу While

Використання вхідний цикл Python також буде ще одним способом перевернути рядок. Давайте розберемо фрагмент коду нижче:

Python Code:

# declaring a string to reverse
string = "Python"
# initializing an empty string to store the reversed string
reversed_string = ""
# printing a message
print(f"String Reversal using a while loop")
# printing the original string
print(f"Original String: {string}")
# find length of a string and store in count variable
count = len(string)
# a while loop for looping through the string characters
while count > 0:
    # save the value of str[count-1] in reversed_string
    reversed_string += string[count - 1]
    # decrementing index
    count = count - 1
print(f"Reversed String: {reversed_string}")

вихід:

String Reversal using a while loop
Original String: Python
Reversed String: nohtyP

Code Пояснення:

  • В цьому Python коду, ми оголошуємо рядок, який буде перевернутий, а потім порожній рядок для зберігання перевернутого рядка.
  • Потім ми знаходимо довжину рядка, призначену для вважати змінна.
  • Команда рядок [кількість – 1] на кожній ітерації отримує символи рядка від останнього до першого.
  • І об’єднує їх у перевернутий_рядок а потім зменшує вважати value.
  • Нарешті, ми друкуємо перевернутий рядок.

вбиральняping працює, але PythonОператор зрізу набагато лаконічніший.

Метод 3: Python Reverse Рядок за допомогою зрізу Operaтор

Ще один метод реверсування рядка – це використання оператора зрізу, щоб зрозуміти це, перегляньте код нижче:

Python Code:

# function to reverse a string
def reverse(string):
    # the  slice syntax
    reversed_string = string[::-1]
    return reversed_string

# declaring a string to reverse
string = "Let's guru99"
# printing a message
print(f"String Reversal using Slicer Operator")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

вихід:

String Reversal using Slicer Operator
Original String: Let's guru99
Reversed String: 99urug s'teL

Code Пояснення:

  • Щоб створити зворотний() функція, яка приймає a рядок як аргумент, всередині нього
  • У цьому прикладі ми маємо a рядок[::-1] оператор зрізу для реверсування рядок
  • Потім перевернутий рядок призначається новій змінній, що викликається перевернутий_рядок
  • Нарешті, повертається новий перевернутий рядок

Метод 4: Revвведення рядка Python за допомогою функції reversed().

Ми також можемо перевернути рядок за допомогою a зворотний () Python код виглядатиме так:

Python Code приклад:

# function to reverse a string
def reverse(string):
    # reversed() function inside the join() function
    string = "".join(reversed(string))
    # returning the reversed string
    return string

# declaring a string to reverse
string = "guru99"
# printing a message
print(f"String Reversal using reversed() function")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

вихід:

String Reversal using reversed() function
Original String: guru99
Reversed String: 99urug

Code Пояснення:

  • У цьому коді ми маємо a зворотний () функція, аргументом якої є a рядок.
  • Всередині нього ми ініціалізували порожній рядок.
  • Ми об’єднуємо його з результатом реверсований (рядок) використання приєднатися () функції.
  • За межами зворотний () ми оголосили рядок для реверсування, тоді ми друкуємо оригінальний рядок і реверсований рядок.

Метод 5: Python Reverse Рядок з використанням рекурсії

Рекурсія означає, що визначена функція викликає сама себе. Рекурсивна функція називається рекурсивною, коли вона викликає саму себе. Щоб краще це зрозуміти, подивіться на такий приклад коду:

Python Code:

# a function to reverse a string
def reverse(string):
    # Checking the length of string
    if len(string) == 0:
        return string
    # reversing string if len(string) != 0
    else:
        # recursively calling the reverse() function
        return reverse(string[1:]) + string[0]

# declaring a string to reverse
string = "I love guru99"
# printing a message
print(f"String Reversal using Recursion")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

вихід:

String Reversal using Recursion
Original String: I love guru99
Reversed String: 99urug evol I

Code Пояснення:

  • У наведеному вище коді ми оголосили a зворотний () функція, яка приймає a рядок як аргумент, тіло функції є an if else Заява
  • Команда if перевіряє, чи довжина рядка еквівалентна 0, і повертає рядок, тоді як ще заява називає зворотний() функція рекурсивно, розрізає останній індекс рядка та додає його на початок.

Поширені запитання

Зріз [::-1] є найшвидшим. Тести показують, що він приблизно в 7 разів швидший, ніж обернення списку, та в 83 рази швидший, ніж рекурсія.

Так. Штучний інтелект перетворює реверс циклу for на зріз та пояснює поєднання reversed() та [::-1].

Інструменти штучного інтелекту попереджають, що += у циклі дорівнює O(n^2) та рекомендують об'єднання або розрізання.

Лінивий ітератор, а не новий рядок. Використовуйте ”.join(reversed(s)) для матеріалізації оберненого рядка, коли це необхідно.

Рідко. Рекурсія елегантна, але повільна та успішна. PythonСтандартне обмеження рекурсії в 1000 кадрів для довгих рядків. Використовуйте зрізи в реальному коді.

Ні. Рядки незмінні в Python; reverse повертає новий рядок. Початкова змінна зберігає те саме значення, якщо її не перепризначити.

Використайте split, перегорніть список, а потім об'єднайте: ' '.join(sentence.split()[::-1]). Це змінює порядок слів на протилежний, зберігаючи при цьому орфографію.

Не завжди. Складені емодзі та об'єднані символи можуть розділятися. Для безпечного з точки зору графем розвороту використовуйте регулярний вираз findall(r'\X', s) перед розворотом.

Підсумуйте цей пост за допомогою: