Existe alguma função no Python que eu possa usar para inserir um valor em uma determinada posição de uma string?
Algo assim:
"3655879ACB6"
então na posição 4 adicione "-"
para se tornar"3655-879ACB6"
Não. As seqüências de caracteres Python são imutáveis.
>>> s='355879ACB6'
>>> s[4:4] = '-'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
No entanto, é possível criar uma nova sequência que tenha o caractere inserido:
>>> s[:4] + '-' + s[4:]
'3558-79ACB6'
s[:-4]
Isso parece muito fácil:
No entanto, se você gosta de algo como uma função, faça o seguinte:
fonte
Como as strings são imutáveis, outra maneira de fazer isso seria transformar a string em uma lista, que pode ser indexada e modificada sem nenhum truque de fatiar. No entanto, para retornar a lista a uma string, você precisará usar
.join()
uma string vazia.Não tenho certeza de como isso se compara ao desempenho, mas sinto que é mais fácil para os olhos do que as outras soluções. ;-)
fonte
Função simples para fazer isso:
fonte
Eu criei um método muito útil para adicionar uma string em uma determinada posição no Python :
por exemplo:
teremos como saída:
fonte
Eu acho que as respostas acima são boas, mas eu explicaria que existem alguns efeitos colaterais inesperados, mas bons para eles ...
Se o índice pos_i for muito pequeno (muito negativo), a sequência de inserção será anexada. Se for muito longa, a sequência de inserção será anexada. Se pos_i estiver entre -len (string_s) e + len (string_s) - 1, a string de inserção será inserida no local correto.
fonte
Python 3.6+ usando f-string:
dá
fonte
Se você deseja muitas inserções
fonte