Kako preokrenuti niz Python (5 metode)

โšก Pametni saลพetak

Revgreลกkom u nizu Python koristi pet provjerenih tehnika: for petlju, while petlju, notaciju kriลกki [::-1], funkciju reversed() i rekurziju. LessObuhvaฤ‡aju sintaksu, primjere koda, izlaz i mjerila performansi.

  • ๐Ÿ” Za petlju: Iterirajte i spajajte znakove.
  • ๐Ÿ”‚ Dok petlja: Smanji indeks i dodaj znakove.
  • โšก Rezanje [::-1]: Najbrลพa metoda, ~7x brลพa od obrnutog prikaza liste.
  • ???? obrnuto() + spajanje: Iterator prilagoฤ‘en memoriji za velike nizove znakova.
  • ๐Ÿ”„ Rekurzija: Rekurzivno izvrลกava string[1:] dok se ne isprazni.
  • ๐Ÿค– Refaktoriranje umjetne inteligencije: Umjetna inteligencija pretvara petlje u rezanje.

Reverse niz u Python

Niz je ureฤ‘eni popis ili niz znakova. Nizovi su jedna od struktura podataka koja dolazi s Python. Dok radite sa nizovima u Python, moลพda biste ลพeljeli da su svi znakovi obrnuti. Dobar primjer bi bio kada gradite igru โ€‹โ€‹palindroma.

Obrnuti niz ima svoj prvi znak kao zadnji znak i tako dalje. Meฤ‘utim, Python ne dolazi s ugraฤ‘enom funkcijom za okretanje nizova, ali to su metode koje moลพete koristiti.

U ovom vodiฤu nauฤit ฤ‡ete razliฤite metode za preokretanje niza Python.

Metoda 1: Reverse u nizu Python koristeฤ‡i For Loop

Prva metoda za okretanje nizova je koriลกtenje for petlje kao u isjeฤku koda u nastavku:

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)}")

Izlaz:

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

Code Objaลกnjenje:

  • U ovom isjeฤku koda moลพemo koristiti obrnuti_string() funkcija za preokret niza uzimajuฤ‡i zadano niz kao argument.
  • Unutar njega moลพemo stvoriti prazan niz za pohranu obrnutog niza, a zatim traลพimoping kroz niz.
  • Likovi su obrnuti i dodijeljeni obrnuti_niz promjenjiva.
  • Konaฤno, zadnji red u funkciji vraฤ‡a obrnuti niz.
  • Za prikaz izlaza, napravite funkcionalni poziv unutar ispis () funkcija uz pomoฤ‡ f-niza.

Metoda 2: Reverse u nizu Python pomoฤ‡u while petlje

Koriลกtenje dok petlja u Python takoฤ‘er bi bila joลก jedna metoda za okretanje niza. Da razumijemo isjeฤak koda u nastavku:

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}")

Izlaz:

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

Code Objaลกnjenje:

  • U ovom Python koda, deklariramo niz koji treba obrnuti, zatim prazan niz za pohranjivanje obrnutog niza.
  • Zatim pronalazimo duljinu niza koja je dodijeljena raฤunati promjenjiva.
  • The niz [broj โ€“ 1] u svakoj iteraciji dohvaฤ‡a niz znakova od zadnjeg do prvog.
  • I spaja ih u obrnuti_niz a zatim smanjuje raฤunati vrijednost.
  • Na kraju ispisujemo obrnuti niz.

WCping djeluje, ali PythonOperator kriลกke je daleko saลพetiji.

Metoda 3: Python Reverse Niz pomoฤ‡u Slicera Operahumka

Joลก jedna metoda za okretanje niza je koriลกtenje operatora odsjeฤka, da biste shvatili, pogledajte kod u nastavku:

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)}")

Izlaz:

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

Code Objaลกnjenje:

  • Da biste stvorili obrnuti () funkcija koja uzima a niz kao argument, unutar njega
  • U ovom primjeru imamo a niz[::-1] slice operator za okretanje niz
  • Zatim se obrnuti niz dodjeljuje novoj varijabli koja se zove obrnuti_niz
  • Na kraju se vraฤ‡a novi obrnuti niz

Metoda 4: Revumetanje niza Python pomoฤ‡u funkcije reversed().

Takoฤ‘er moลพemo obrnuti niz koristeฤ‡i a obrnuto () Python funkcija, kod bi izgledao ovako:

Python Code Primjer:

# 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)}")

Izlaz:

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

Code Objaลกnjenje:

  • U ovom kodu imamo a obrnuto () funkcija ฤiji je argument a niz.
  • Unutar njega smo inicijalizirali prazan niz.
  • Spajamo ga s izlazom obrnuto (niz) pomoฤ‡u pridruลพiti() funkcija.
  • Izvan obrnuto () funkciju, deklarirali smo niz za obrnuto, tada ispisujemo izvorni niz i obrnuti niz.

Metoda 5: Python Reverse Niz pomoฤ‡u rekurzije

Rekurzija znaฤi da definirana funkcija poziva samu sebe. Za rekurzivnu funkciju se kaลพe da je rekurzivna kada poziva samu sebe. Da biste to bolje razumjeli, pogledajte sljedeฤ‡i primjer koda:

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)}")

Izlaz:

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

Code Objaลกnjenje:

  • U gornjem kodu deklarirali smo a obrnuti () funkcija koja uzima a niz kao argument, tijelo funkcije je an ako drugo izjava.
  • The if naredba provjerava je li duljina niza jednaka 0 i vraฤ‡a niz, dok drugo izjava naziva obrnuti () funkcionira rekurzivno, reลพe zadnji indeks niza i dodaje ga na poฤetak.

Pitanja i odgovori

Rezanje [::-1] je najbrลพe. Mjerila pokazuju da je ~7x brลพe od obrnutog popisa i 83x brลพe od rekurzije.

Da. Umjetna inteligencija pretvara obrat for-petlje u rezanje i objaลกnjava reversed() u odnosu na [::-1].

AI alati upozoravaju da je += u petlji O(n^2) i preporuฤuju spajanje ili rezanje.

Lijeni iterator, a ne novi niz. Koristite โ€.join(reversed(s)) za materijalizaciju obrnutog niza kada je to potrebno.

Rijetko. Rekurzija je elegantna, ali spora i pogaฤ‘a PythonZadano ograniฤenje rekurzije od 1000 okvira na dugim nizovima. Koristite rezanje u stvarnom kodu.

Ne. Nizovi su nepromjenjivi u Python; obrnuto vraฤ‡a novi niz. Izvorna varijabla zadrลพava istu vrijednost osim ako se ne dodijeli ponovno.

Koristite split, obrnite redoslijed rijeฤi u listi, a zatim spojite: ' '.join(sentence.split()[::-1]). Ovo obrฤ‡e redoslijed rijeฤi uz oฤuvanje pravopisa.

Ne uvijek. Sloลพeni emojiji i kombinirani znakovi mogu se razdvojiti. Za obrnuto djelovanje sigurno za grafeme upotrijebite regex findall(r'\X', s) prije obrnutovanja.

Saลพmite ovu objavu uz: