Les cordes de Python sont immuables, j'ai essayé cette solution de contournement: j'ai d'abord cassé la chaîne dans ses composants de caractère, les mettant dans une liste. Ensuite, j'ai procédé en boucle dans cette liste et en remplaçant la deuxième occurrence du personnage que je voulais modifier dans le caractère cible. La dernière partie était bien sûr de ré-construire la chaîne de la nouvelle liste ainsi obtenue.
Go$gle
3 Réponses :
Vous pouvez effectuer ce qui suit:
char = "a"
stri = "santaclaus"
char.join("$".join(s.split(char)) for s in stri.split(char, 1))
# 'sant$cl$us'
def modify():
while True:
varstr = input("Insert a string to modify:\n> ")
if ' ' in varstr:
print("Please insert a string without space")
else:
break
while True:
varchar = input("Insert a SINGLE character to modify in $:\n> ")
if len(varchar) > 1:
print("Please insert a single character, without spaces")
else:
break
return varstr[0] + varstr[1:].replace(varchar, '$')
Essayez ceci:
def modify():
while True:
varstr = input("Insert a string to modify:\n> ")
if len(varstr) > 0 and ' ' not in varstr:
break
print("Please insert a string without space")
while True:
varchar = input("Insert a SINGLE character to modify in $:\n> ")
if len(varchar) == 1 and varchar != ' ':
break
print("Please insert a single character, without spaces")
first = varstr.find(varchar) + 1
varstr = varstr[:first] + varstr[first:].replace(varchar, "$")
return varstr
retour code> après le modifier () code> appel. Li>
- Si vous souhaitez convertir une chaîne en une liste de caractères, vous pouvez utiliser
strlist = liste (varstr) code>. Ensuite, vous pouvez muter et revenir à la chaîne en utilisant ''. Joindre (Strlist) CODE> LI>
ul> p>
Il serait plus facile de comprendre avec l'échantillon d'entrée et de sortie d'échantillon. Veuillez fournir exemple de reproductible minimal .
Cela remplacera chaque occurrence à partir de la seconde. Est-ce que c'est désiré?
J'ai ajouté l'entrée d'échantillon et la sortie à la fin de la poste.
@schwObaseggl Oui! C'est ça.