1
resposta

[Bug] Um ponto uma sequencia string é mutável

Execute o código abaixo

s = str("Fulano Sobrenome")
address_m1 = id(s)
print(address_m1)

print("\n")

print(s.replace("Fulano", "Bruno"))
address_m2 = id(s)
print(address_m2)

print("\n")

print(address_m1 == address_m2)

As strings em python só são armazenadas em um novo local na memória se o valor crescer bastante, se não eles vão ser armazenados no mesmo local em memória.

1 resposta

Olá Raphael!

Na verdade, as strings em Python são imutáveis, ou seja, uma vez que você cria uma string, não é possível alterá-la. O que acontece é que, quando você faz uma operação que modifica a string, na verdade está criando uma nova string com o resultado da operação.

No seu código, você está criando uma string com o valor "Fulano Sobrenome" e atribuindo a variável s. Em seguida, você está substituindo o valor "Fulano" por "Bruno" com o método replace(). O que acontece é que o método replace() não modifica a string original, mas cria uma nova string com o valor modificado:

novo = s.replace("Fulano", "Bruno") #s não muda

Espero ter ajudado e bons estudos!