I denne artikkelen vil vi diskutere hvordan du bytter to tegn i en streng. Det er ulike tilnærminger som vil hjelpe deg å forstå hvordan vi kan bytte to tegn i en streng.
Tilnærming 1: Bruke list() og join()-metoden
Hvis vi ønsker å bytte to tegn i en streng, kan vi bruke liste() og bli med() metode.
Eksempel:
prøv catch block java
# Input string string = 'hello world' # Convert string to list of characters char_list = list(string) # Swap characters at index 2 and index 6 char_list[2], char_list[6] = char_list[6], char_list[2] # Convert list back to string new_string = ''.join(char_list) # Output new string print(new_string)
Produksjon:
hewlo lorld
Forklaring:
I koden ovenfor definerer vi først inngangsstrengen som 'Hei Verden' . Etter det konverterer vi strengen til en liste med tegn ved å bruke liste() metode. Deretter bruker vi tuppel utpakking å bytte tegn på indeks 2 og indeks 6 i listen. Til slutt konverterer vi listen tilbake til en streng ved å bruke bli med() metode og ut den nye strengen
Tilnærming 2: Bruke skjæring og sammenknytting
Hvis vi ønsker å bytte to tegn i en streng, kan vi bruke skjæring og sammenkobling metode.
Eksempel:
# Input string string = 'hello world' # Swap characters at index 2 and index 6 new_string = string[:2] + string[6] + string[3:6] + string[2] + string[7:] # Output new string print(new_string)
Produksjon:
hewlo lorld
Forklaring:
I denne tilnærmingen bruker vi skjæring av strenger og sammenkobling for å bytte tegn. Vi deler strengen i fire deler: den understreng før det første tegnet som skal byttes (streng[:2]) , det første byttet karakter (streng[6]) , understrengen mellom de byttede tegnene (streng[3:6]) , det andre byttet tegnet (streng[2]) , og understrengen etter det andre byttet tegnet (streng[7:]) . Etter det setter vi sammen disse understrengene i ønsket rekkefølge for å lage den nye strengen.
Tilnærming 3: Bruke en listeforståelse
Hvis vi ønsker å bytte to tegn i en streng, kan vi bruke listeforståelse metode.
Eksempel:
# Input string string = 'hello world' # Swap characters at index 2 and index 6 char_list = [string[i] if i not in (2, 6) else string[6 if i == 2 else 2] for i in range(len(string))] # Convert list back to string new_string = ''.join(char_list) # Output new string print(new_string)
Produksjon:
hewlo lorld
Forklaring:
I denne tilnærmingen lager vi en liste over tegn ved å bruke en listeforståelse som itererer over indeksene til inndatastrengen. Vi bruker et betinget uttrykk i listeforståelsen for å bytte tegn på indeks 2 og indeks 6 .
Uttrykket streng[6 if i == 2 annet 2] returnerer tegnet kl indeks 6 hvis gjeldende indeks er 2 , og returnerer tegnet kl indeks 2 hvis gjeldende indeks er 6 . Ellers returnerer den det opprinnelige tegnet ved gjeldende indeks. Etter det konverterer vi listen over tegn tilbake til en streng ved å bruke join() metode og ut den nye strengen.
Denne tilnærmingen kan være mindre effektiv enn de tidligere tilnærmingene fordi den oppretter en ny liste med tegn, men den kan være nyttig i situasjoner der en listeforståelse er mer praktisk eller intuitiv å bruke.
Tilnærming 4: Bruker 'bytearray' innebygd type
Hvis vi ønsker å bytte to tegn i en streng, kan vi bruke bytearray metode.
Eksempel:
# Input string string = 'hello world' # Convert string to bytearray byte_array = bytearray(string, 'utf-8') # Swap characters at index 2 and index 6 byte_array[2], byte_array[6] = byte_array[6], byte_array[2] # Convert bytearray back to string new_string = byte_array.decode() # Output new string print(new_string)
Produksjon:
hewlo lorld
Forklaring:
I denne tilnærmingen konverterer vi først inngangsstrengen til a bytearray bruker bytearray() innebygd funksjon. Etter det spesifiserer vi 'utf-8' koding for å konvertere strengen til byte, og så bytter vi de to tegnene på indeks 2 og indeks 6 ved å få direkte tilgang til de tilsvarende elementene i bytearray . Til slutt konverterer vi bytearray tilbake til en streng ved hjelp av dekode() metode og ut den nye strengen.
Denne tilnærmingen er effektiv fordi den bruker en foranderlig bytearray i stedet for å lage en ny streng eller liste.