Как да обърнете низ Python (5 метода)

⚡ Умно обобщение

Revизтриване на низ в Python използва пет доказани техники: for цикъл, while цикъл, slice нотация [::-1], функцията reversed() и рекурсия. LessОбхващат синтаксис, примерен код, изход и тестове за производителност.

  • 🔁 За цикъл: Итерирайте и конкатенирайте символи.
  • 🔂 Докато цикъл: Намаляване на индекса и добавяне на символи.
  • Нарязване [::-1]: Най-бързият метод, ~7 пъти по-бърз от обръщането на списъка.
  • 📦 обърнато() + съединение: Итератор, удобен за паметта, за големи низове.
  • 🔄 Рекурсия: Рекурсира върху низ[1:], докато стане празен.
  • 🤖 Рефакториране на изкуствен интелект: Изкуственият интелект преобразува циклите в нарязване.

Reverse низ в Python

Низът е подреден списък или поредица от знаци. Низовете са една от структурите от данни, които идват с Python. Докато работите с низове в Python, може да искате всички знаци да са обърнати. Добър пример би бил, когато създавате палиндромна игра.

Обърнат низ има първия знак като последен знак и т.н. обаче Python не идва с вградена функция за обръщане на низове, но те са методи, които можете да използвате.

В този урок ще научите различни методи за обръщане на низа Python.

Метод 1: Reverse връзване Python използвайки For Loop

Първият метод за обръщане на низове е използването на 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 Обяснение:

  • В този кодов фрагмент можем да използваме обратен_низ() функция за обръщане на низове, като взема дадено низ като аргумент.
  • Вътре в него можем да създадем празен низ, за ​​да съхраним обърнатия низ, след което търсимping през струната.
  • Героите са обърнати и присвоени на обърнат_низ променлива.
  • И накрая, последният ред във функцията връща обърнатия низ.
  • За да покажете изхода, правете функционално повикване вътре в печат () функция с помощта на 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] във всяка итерация извлича символите на низа от последния до първия.
  • И ги свързва към обърнат_низ и след това намалява броя стойност.
  • Накрая отпечатваме обърнатия низ.

клозетping работи, но PythonОператорът за срез е далеч по-кратък.

Метод 3: Python Reverse Низ, използващ Slicer OperaTor

Друг метод за обръщане на низ е използването на оператор за разделяне, за да се ориентирате в него, вижте кода по-долу:

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 операторът проверява дали дължината на низа е еквивалентна на 0 и връща низа, докато още изявлението нарича обратен() функция рекурсивно, нарязва последния индекс на низа и го добавя към началото.

Въпроси и Отговори

Нарязването на [::-1] е най-бързо. Тестовете показват, че е ~7 пъти по-бързо от обръщането на списъка и 83 пъти по-бързо от рекурсията.

Да. Изкуственият интелект преобразува обръщането на for-loop в нарязване и обяснява reversed() спрямо [::-1].

Инструментите с изкуствен интелект предупреждават, че += в цикъл е O(n^2) и препоръчват join или sliceing.

Ленив итератор, а не нов низ. Използвайте ”.join(reversed(s)), за да материализирате обърнатия низ, когато е необходимо.

Рядко. Рекурсията е елегантна, но бавна и постига резултати. PythonЛимитът по подразбиране за рекурсия от 1000 кадъра за дълги низове. Използвайте нарязване в реален код.

Не. Низовете са непроменяеми в Python; обръщането връща нов низ. Оригиналната променлива запазва същата стойност, освен ако не бъде преназначена.

Използвайте split, обърнете списъка, след което join: ' '.join(sentence.split()[::-1]). Това обръща словореда, като запазва правописа.

Не винаги. Съставните емоджита и комбиниращите се знаци може да се разделят. За безопасно от графеми обръщане използвайте regex findall(r'\X', s) преди обръщане.

Обобщете тази публикация с: