logo

Hvordan bytter man to tegn i en streng i python?

I denne artikel vil vi diskutere, hvordan man bytter to tegn i en streng. Der er forskellige tilgange, der vil hjælpe med at forstå, hvordan vi kan bytte to tegn i en streng.

Fremgangsmåde 1: Brug af list() og join()-metoden

Hvis vi ønsker at bytte to tegn i en streng, kan vi bruge liste() og tilslutte() metode.

Eksempel:

ændre navn mappe linux
 # 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) 

Produktion:

 hewlo lorld 

Forklaring:

I koden ovenfor definerer vi først inputstrengen som 'Hej Verden' . Derefter konverterer vi strengen til en liste over tegn ved hjælp af liste() metode. Dernæst bruger vi tuple udpakning at bytte karaktererne på indeks 2 og indeks 6 på listen. Til sidst konverterer vi listen tilbage til en streng ved hjælp af tilslutte() metode og output den nye streng

Fremgangsmåde 2: Brug af udskæring og sammenkædning

Hvis vi ønsker at bytte to tegn i en streng, kan vi bruge udskæring og sammenkædning 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) 

Produktion:

 hewlo lorld 

Forklaring:

I denne tilgang bruger vi snore udskæring og sammenkædning for at bytte tegn. Vi skærer strengen i fire dele: den understreng før det første tegn, der skal byttes (streng[:2]) , det første byttede tegn (streng[6]) , understrengen mellem de ombyttede tegn (streng[3:6]) , det andet byttede tegn (streng[2]) , og understrengen efter det andet byttede tegn (streng[7:]) . Derefter sammenkæder vi disse understrenge i den ønskede rækkefølge for at oprette den nye streng.

Fremgangsmåde 3: Brug af en listeforståelse

Hvis vi ønsker at bytte to tegn i en streng, kan vi bruge 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) 

Produktion:

 hewlo lorld 

Forklaring:

I denne tilgang opretter vi en liste over tegn ved hjælp af en listeforståelse, der itererer over indekserne for inputstrengen. Vi bruger et betinget udtryk inden for listeforståelsen til at bytte tegnene ved indeks 2 og indeks 6 .

Udtrykket streng[6 if i == 2 andet 2] returnerer tegnet kl indeks 6 hvis det aktuelle indeks er 2 , og returnerer tegnet kl indeks 2 hvis det aktuelle indeks er 6 . Ellers returnerer det det oprindelige tegn ved det aktuelle indeks. Derefter konverterer vi listen over tegn tilbage til en streng ved hjælp af join() metode og output den nye streng.

Denne tilgang kan være mindre effektiv end de tidligere tilgange, fordi den opretter en ny liste over tegn, men den kan være nyttig i situationer, hvor en listeforståelse er mere praktisk eller intuitiv at bruge.

Fremgangsmåde 4: Brug af 'bytearray' indbygget type

Hvis vi ønsker at bytte to tegn i en streng, kan vi bruge 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) 

Produktion:

 hewlo lorld 

Forklaring:

I denne tilgang konverterer vi først inputstrengen til a bytearray bruger bytearray() indbygget funktion. Derefter angiver vi 'utf-8' kodning for at konvertere strengen til byte, og så bytter vi de to tegn ved indeks 2 og indeks 6 ved at få direkte adgang til de tilsvarende elementer i bytearray . Til sidst konverterer vi bytearray tilbage til en streng ved hjælp af afkode() metode og output den nye streng.

Denne tilgang er effektiv, fordi den bruger en foranderligt bytearray i stedet for at oprette en ny streng eller liste.