Python: Hogyan cserélhetünk le egy vagy több karaktert egy karakterláncban?

Ebben a cikkben azt tárgyaljuk, hogyan lehet egy vagy több karaktert helyettesíteni egy karakterláncban a Pythonban.

A Python biztosít egy str.replace () függvényt, azaz

str.replace(old, new , count)

Visszaad egy új karakterlánc objektumot, amely a meglévő karakterlánc másolata helyettesítve tartalom. Ezenkívül

  • Ha a count nincs megadva, akkor egy karakterláncot ad vissza a „régi” összes előfordulásával, helyette az „új” karakterlánccal.
  • Ha a count paramétert átadják, akkor az adjon vissza egy karakterláncot a „régi” karakterlánc első „count” előfordulásával, az „új” karakterlánccal helyettesítve.

Értsük meg példákkal,

cserélje le az adott karakter összes előfordulását / string egy karakterláncban

Tegyük fel, hogy van egy karakterláncunk, azaz

mainStr = "Hello, This is a sample string"

Most lehetővé teszi a ‘s összes előfordulásának helyettesítését ” ‘X betűvel, azaz

"""Replace all occurrences of given character or string in main string"""otherStr = mainStr.replace("s" , "X") 

A otherStr tartalma a következő,

Hello, ThiX iX a Xample Xtring

As a karakterláncok megváltoztathatatlanok a Pythonban, ezért nem tudjuk megváltoztatni a tartalmát. Ezért az olyan tagfunkciók, mint a Replace (), új karakterláncot adnak vissza.
Mivel nem adtuk meg a count paramétert a Replace () függvényben. Tehát az „s” összes előfordulását „X” -re cseréli. De mi van akkor, ha az összes helyett csak az első néhány eseményt akarjuk helyettesíteni? Nézzük meg, hogyan kell ezt megtenni,

Cserélje le az adott karakter / al karakterlánc első n előfordulását egy karakterláncban

Tegyük fel, hogy van egy karakterláncunk, azaz

mainStr = "Hello, This is a sample string"

Most lehetővé teszi az ‘s’ első 2 előfordulásának helyét az ‘XXXS’ kifejezésre, azaz

"""Replace First 2 occurrences of given character or string in main string"""otherStr = mainStr.replace("s" , "XXXS", 2) 

A otherStr tartalma a következő,

Hello, ThiXXXS iXXXS a sample string

Mivel a count paramétert 2-ként adtuk meg, a ‘s’ csak az első 2 előfordulását cseréljük le a visszaküldött példányban.

Több karakter cseréje / stringek egy karakterláncban

Az str.replace () függvény csak egy adott részlánc előfordulását helyettesítheti. De mi van akkor, ha egy adott karaktersorozatban több alhúrláncot akarunk cserélni?

Tegyük fel, hogy van egy karakterláncunk, azaz

mainStr = "Hello, This is a sample string"

Hogyan lehet ennek a három karakternek az ‘s’, ‘l’, ‘a’ összes előfordulását lecserélni erre az ‘AA’ karakterláncra?
Ehhez hozzunk létre egy új függvényt a helyettesítés () felett, azaz

"""Replace a set of multiple sub strings with a new string in main string."""def replaceMultiple(mainString, toBeReplaces, newString): # Iterate over the strings to be replaced for elem in toBeReplaces : # Check if string is in the main string if elem in mainString : # Replace the string mainString = mainString.replace(elem, newString) return mainString

Helyettesíti a ToBeReplaces Lista sztringjeinek összes előfordulását newString-el a fő megadott mainString listában.
Nézzük meg, hogyan cserélhetjük le az “AA” -val, azaz
A otherStr tartalma a következő,

HeAAAAo, ThiAA iAA AA AAAAmpAAe AAtring

A teljes példa a következő,
Kimenet:

String with replaced Content : Hello, ThiX iX a Xample XtringHello, ThiXXXS iXXXS a sample stringHeAAAAo, ThiAA iAA AA AAAAmpAAe AAtring

Write a Comment

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük