¿Hay alguna función en Python que pueda usar para insertar un valor en una determinada posición de una cadena?
Algo como esto:
"3655879ACB6"
luego en la posición 4 agregue "-"
para convertirse"3655-879ACB6"
No. Las cadenas de Python son inmutables.
>>> s='355879ACB6'
>>> s[4:4] = '-'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
Sin embargo, es posible crear una nueva cadena que tenga el carácter insertado:
>>> s[:4] + '-' + s[4:]
'3558-79ACB6'
s[:-4]
Esto parece muy fácil:
Sin embargo, si le gusta algo como una función, haga lo siguiente:
fuente
Como las cadenas son inmutables, otra forma de hacerlo sería convertir la cadena en una lista, que luego se puede indexar y modificar sin ningún tipo de truco de corte. Sin embargo, para volver la lista a una cadena, debe usar
.join()
una cadena vacía.No estoy seguro de cómo se compara esto en cuanto al rendimiento, pero creo que es más fácil a la vista que las otras soluciones. ;-)
fuente
Función simple para lograr esto:
fuente
He creado un método muy útil para agregar una cadena en una determinada posición en Python :
por ejemplo:
tendremos como salida:
fuente
Creo que las respuestas anteriores están bien, pero explicaría que hay algunos efectos secundarios inesperados pero buenos para ellos ...
Si el índice pos_i es muy pequeño (demasiado negativo), la cadena de inserción se antepone. Si es demasiado largo, la cadena de inserción se agrega. Si pos_i está entre -len (string_s) y + len (string_s) - 1, la cadena de inserción se inserta en el lugar correcto.
fuente
Python 3.6+ usando f-string:
da
fuente
Si quieres muchas inserciones
fuente