Ebben a cikkben megvitatjuk, hogyan lehet két karaktert felcserélni egy karakterláncban. Különféle megközelítések segítenek megérteni, hogyan cserélhetünk fel két karaktert egy karakterláncban.
1. megközelítés: A list() és a join() metódusok használata
Ha két karaktert szeretnénk felcserélni egy karakterláncban, használhatjuk a lista() és csatlakozik() módszer.
Példa:
távolítsa el az első karaktert az Excelben
# 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)
Kimenet:
hewlo lorld
Magyarázat:
A fenti kódban először a bemeneti karakterláncot a következőképpen definiáljuk 'Helló Világ' . Ezt követően a karakterláncot karakterlistává alakítjuk a lista() módszer. Ezután használjuk tuple kicsomagolás a karakterek felcseréléséhez index 2 és index 6 a listában. Végül a listát a csatlakozik() metódust, és adja ki az új karakterláncot
2. megközelítés: Szeletelés és összefűzés használata
Ha két karaktert szeretnénk felcserélni egy karakterláncban, használhatjuk a szeletelés és összefűzés módszer.
Példa:
# 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)
Kimenet:
hewlo lorld
Magyarázat:
Ebben a megközelítésben használjuk húrszeletelés és összefűzés felcserélni a karaktereket. A zsinórt négy részre szeleteljük: a részkarakterlánc az első cserélendő karakter előtt (karakterlánc[:2]) , az első felcserélt karakter (karakterlánc[6]) , a felcserélt karakterek közötti részkarakterlánc (karakterlánc[3:6]) , a második felcserélt karakter (karakterlánc[2]) , és a második felcserélt karakter utáni részkarakterlánc (karakterlánc[7:]) . Ezt követően összefűzzük ezeket a részkarakterláncokat a kívánt sorrendben az új karakterlánc létrehozásához.
3. megközelítés: Listaértés használata
Ha két karaktert szeretnénk felcserélni egy karakterláncban, használhatjuk a lista értés módszer.
Példa:
# 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)
Kimenet:
hewlo lorld
Magyarázat:
Ebben a megközelítésben karakterlistát hozunk létre egy listaértelmezés segítségével, amely a bemeneti karakterlánc indexein iterál. Feltételes kifejezést használunk a lista értelmezésén belül a karakterek felcserélésére index 2 és index 6 .
A kifejezés string[6 if i == 2 else 2] visszaadja a karaktert index 6 ha az aktuális index az 2 , és visszaadja a karaktert: index 2 ha az aktuális index az 6 . Ellenkező esetben az eredeti karaktert adja vissza az aktuális indexnél. Ezt követően a karakterlistát a karakterlánc segítségével alakítjuk vissza karakterláncká join() metódus és adja ki az új karakterláncot.
Lehet, hogy ez a megközelítés kevésbé hatékony, mint a korábbi megközelítések, mert új karakterlistát hoz létre, de hasznos lehet olyan helyzetekben, amikor a lista értelmezése kényelmesebb vagy intuitívabb.
4. megközelítés: 'bytearray' beépített típus használata
Ha két karaktert szeretnénk felcserélni egy karakterláncban, használhatjuk a bytearray módszer.
Példa:
# 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)
Kimenet:
hewlo lorld
Magyarázat:
Ebben a megközelítésben először konvertáljuk a bemeneti karakterláncot a-ra bytearray használni a bytearray() beépített funkció. Ezt követően megadjuk a 'utf-8' kódolást, hogy a karakterláncot bájttá alakítsuk, majd felcseréljük a két karaktert at index 2 és index 6 a megfelelő elemek közvetlen elérésével a bytearray . Végül konvertáljuk a bytearray vissza egy karakterlánchoz a segítségével dekód () metódust, és adja ki az új karakterláncot.
Ez a megközelítés hatékony, mert a módosítható bytearray új karakterlánc vagy lista létrehozása helyett.