logo

Kā python virknē apmainīt divas rakstzīmes?

Šajā rakstā mēs apspriedīsim, kā virknē apmainīt divas rakstzīmes. Ir dažādas pieejas, kas palīdzēs saprast, kā mēs varam apmainīt divas rakstzīmes virknē.

1. pieeja: izmantojot list() un join() metodi

Ja mēs vēlamies apmainīt divas rakstzīmes virknē, mēs varam izmantot saraksts () un pievienoties () metodi.

Piemērs:

virkņu salīdzināšana 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) 

Izvade:

 hewlo lorld 

Paskaidrojums:

Iepriekš minētajā kodā mēs vispirms definējam ievades virkni kā 'Sveika pasaule' . Pēc tam mēs pārvēršam virkni par rakstzīmju sarakstu, izmantojot saraksts () metodi. Tālāk mēs izmantojam tuple izpakošana lai apmainītos ar rakstzīmēm indekss 2 un indekss 6 sarakstā. Visbeidzot mēs pārvēršam sarakstu atpakaļ par virkni, izmantojot pievienoties () metodi un izvadiet jauno virkni

2. pieeja: sagriešanas un savienošanas izmantošana

Ja mēs vēlamies apmainīt divas rakstzīmes virknē, mēs varam izmantot sagriešana un savienošana metodi.

Piemērs:

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

Izvade:

 hewlo lorld 

Paskaidrojums:

Šajā pieejā mēs izmantojam stīgu sagriešana un savienošana lai apmainītos ar rakstzīmēm. Mēs sagriežam auklu četrās daļās: apakšvirkne pirms pirmās nomaināmās rakstzīmes (virkne[:2]) , pirmā nomainītā rakstzīme (virkne[6]) , apakšvirkne starp apmainītajām rakstzīmēm (virkne[3:6]) , otrā apmainītā rakstzīme (virkne[2]) , un apakšvirkne pēc otrās apmainītās rakstzīmes (virkne[7:]) . Pēc tam mēs savienojam šīs apakšvirknes vēlamajā secībā, lai izveidotu jaunu virkni.

3. pieeja: saraksta izpratnes izmantošana

Ja mēs vēlamies apmainīt divas rakstzīmes virknē, mēs varam izmantot saraksta izpratne metodi.

Piemērs:

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

Izvade:

 hewlo lorld 

Paskaidrojums:

Izmantojot šo pieeju, mēs izveidojam rakstzīmju sarakstu, izmantojot saraksta izpratni, kas atkārtojas pa ievades virknes indeksiem. Mēs izmantojam nosacītu izteiksmi saraksta izpratnē, lai apmainītu rakstzīmes pie indekss 2 un indekss 6 .

Izteiciens virkne[6, ja i == 2 cits 2] atgriež rakstzīmi plkst indekss 6 ja pašreizējais indekss ir 2 , un atgriež rakstzīmi pie indekss 2 ja pašreizējais indekss ir 6 . Pretējā gadījumā tas atgriež sākotnējo rakstzīmi pašreizējā rādītājā. Pēc tam mēs pārvēršam rakstzīmju sarakstu atpakaļ par virkni, izmantojot join() metode un izvadiet jauno virkni.

Šī pieeja var būt mazāk efektīva nekā iepriekšējās pieejas, jo tā izveido jaunu rakstzīmju sarakstu, taču tā var būt noderīga situācijās, kad saraksta izpratne ir ērtāka vai intuitīvāka lietošanai.

4. pieeja: iebūvētā tipa “bytearray” izmantošana

Ja mēs vēlamies apmainīt divas rakstzīmes virknē, mēs varam izmantot bytearray metodi.

Piemērs:

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

Izvade:

 hewlo lorld 

Paskaidrojums:

Šajā pieejā mēs vispirms pārveidojam ievades virkni par a bytearray izmantojot bytearray() iebūvēta funkcija. Pēc tam mēs precizējam 'utf-8' kodējumu, lai pārvērstu virkni baitos, un pēc tam mēs apmainām abas rakstzīmes at indekss 2 un indekss 6 tieši piekļūstot attiecīgajiem elementiem bytearray . Visbeidzot mēs pārvēršam bytearray atpakaļ uz virkni, izmantojot atšifrēt () metodi un izvadiet jauno virkni.

Šī pieeja ir efektīva, jo tā izmanto a mainīgs bytearray tā vietā, lai izveidotu jaunu virkni vai sarakstu.