V tomto článku se budeme zabývat tím, jak nahradit jeden nebo více znaků v řetězci v Pythonu.
Python poskytuje funkci str.replace () tj.
str.replace(old, new , count)
Vrací nový objekt řetězce, který je kopií existujícího řetězce s nahrazeným obsah. Také
- Pokud count neposkytuje, vrátí řetězec se všemi výskyty řetězce „old“, který bude nahrazen řetězcem „new“.
- Pokud je předán parametr count, bude vrací řetězec s prvními ‚count‘ výskyty ‚starého‘ řetězce nahrazeného ‚novým‘ řetězcem.
Pochopme příklady,
Nahraďte všechny výskyty daného znaku / string v řetězci
Předpokládejme, že máme řetězec, tj.
mainStr = "Hello, This is a sample string"
Pojďme nyní nahradit všechny výskyty ‚s ‚with‘ X ‚ie
"""Replace all occurrences of given character or string in main string"""otherStr = mainStr.replace("s" , "X")
Obsah otherStr je následující,
Hello, ThiX iX a Xample Xtring
jako řetězce jsou v Pythonu neměnné, takže nemůžeme měnit jejich obsah. Proto členské funkce jako replace () vrací nový řetězec.
Protože jsme ve funkci replace () nezadali parametr count. Nahradí tedy všechny výskyty písmen „s“ znakem „X“. Ale co když chceme místo všech nahradit pouze několik prvních výskytů? Podívejme se, jak to udělat,
Nahradit prvních n výskytů daného znaku / podřetězce v řetězci
Předpokládejme, že máme řetězec tj.
mainStr = "Hello, This is a sample string"
Nyní umožňuje nahradit první 2 výskyty ‚s‘ za ‚XXXS‘ tj.
"""Replace First 2 occurrences of given character or string in main string"""otherStr = mainStr.replace("s" , "XXXS", 2)
Obsah otherStr je následující,
Hello, ThiXXXS iXXXS a sample string
Protože jsme předali parametr count jako 2, budou ve vrácené kopii nahrazeny pouze první 2 výskyty ‚s‘.
Nahradit více znaků / strings v řetězci
Funkce str.replace () může nahradit výskyty pouze jednoho daného podřetězce. Ale co když chceme v daném řetězci nahradit více dílčích řetězců?
Předpokládejme, že máme řetězec tj.
mainStr = "Hello, This is a sample string"
Jak nyní nahradit všechny výskyty těchto tří znaků „s“, „l“, „a“ tímto řetězcem „AA“?
Vytvořme novou funkci over replace (), abychom to mohli udělat, tj.
"""Replace a set of multiple sub strings with
read more