Existe-t-il une fonction en Python que je peux utiliser pour insérer une valeur à une certaine position d'une chaîne?
Quelque chose comme ça:
"3655879ACB6"
puis en position 4 ajouter "-"
pour devenir"3655-879ACB6"
Non. Les chaînes Python sont immuables.
>>> s='355879ACB6'
>>> s[4:4] = '-'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
Il est cependant possible de créer une nouvelle chaîne avec le caractère inséré:
>>> s[:4] + '-' + s[4:]
'3558-79ACB6'
s[:-4]
Cela semble très simple:
Cependant, si vous aimez quelque chose comme une fonction, faites comme ceci:
la source
Comme les chaînes sont immuables, une autre façon de le faire serait de transformer la chaîne en une liste, qui peut ensuite être indexée et modifiée sans aucune supercherie de découpage. Cependant, pour ramener la liste à une chaîne, vous devez utiliser
.join()
une chaîne vide.Je ne sais pas comment cela se compare en termes de performances, mais je pense que c'est plus facile pour les yeux que les autres solutions. ;-)
la source
Fonction simple pour accomplir cela:
la source
J'ai créé une méthode très utile pour ajouter une chaîne dans une certaine position en Python :
par exemple:
nous aurons en sortie:
la source
Je pense que les réponses ci-dessus sont bonnes, mais j'expliquerais qu'il y a des effets secondaires inattendus mais bons pour eux ...
Si l'index pos_i est très petit (trop négatif), la chaîne d'insertion est ajoutée au préfixe. Si elle est trop longue, la chaîne d'insertion est ajoutée. Si pos_i est compris entre -len (string_s) et + len (string_s) - 1, la chaîne d'insertion est insérée au bon endroit.
la source
Python 3.6+ utilisant f-string:
donne
la source
Si vous voulez de nombreux inserts
la source