O que é mutável e imutável em Python?
Publicados: 2022-09-22Em Python, cada variável contém uma instância de qualquer objeto em dois tipos, ou seja, mutável e imutável. Um id de objeto exclusivo é atribuído a um objeto sempre que ele é instanciado. O tempo de execução define o tipo de objeto e não pode ser alterado posteriormente.
No entanto, o mutável é um objeto mutável. Quando dizemos mutável, significa que o estado interno do objeto pode ser modificado. Simultaneamente, o estado do objeto incapaz de mudar após a criação é um objeto imutável. Ambos os estados mutáveis e imutáveis são parte integrante da estrutura de dados do Python.
O recurso de mutabilidade de objetos em Python o torna uma linguagem tipada dinamicamente. Mutável e Imutável em Python é um conceito bastante essencial, mas muitas vezes são confundidos devido à sua natureza intransitiva de imutabilidade.
Vamos descobrir tudo sobre eles e as principais diferenças.
Confira nossos cursos on-line de ciência de dados para se aprimorar
Principais habilidades de ciência de dados para aprender a aprimorar
SL. Não | Principais habilidades de ciência de dados para aprender em 2022 | |
1 | Cursos Online de Análise de Dados | Cursos Online de Estatística Inferencial |
2 | Cursos on-line de teste de hipóteses | Cursos Online de Regressão Logística |
3 | Cursos de Regressão Linear | Cursos Online de Álgebra Linear para Análise |

Estado mutável em Python
A palavra 'Mutable' traduz diretamente para 'mutável' ou algo que pode ser 'mutável'. Ele define um objeto aberto a alterações e, em Python, 'mutável' refere-se à capacidade de um objeto de alterar valores. Esses objetos geralmente armazenam a coleta de dados e contêm listas de tipos, conjuntos, dicionários e classes definidas pelo usuário embutidas.
Estado de definição imutável em Python
Imutável em Python é quando você não pode alterar o tipo de objeto ao longo do tempo. Se não for possível alterar o valor de um objeto em Python, ele é conhecido como objeto imutável. Uma vez que um objeto imutável é criado, seu valor permanece permanente e imutável. Objetos de tipo interno imutáveis são números, strings, tuplas, conjuntos congelados e classes definidas pelo usuário.
Objetos em Python
Antes de nos aprofundarmos na mutabilidade e imutabilidade em Python, vamos primeiro aprender o que são objetos. Em Python, tudo é considerado um objeto, e cada objeto possui três atributos:
- Identidade: Refere-se ao endereço do objeto na memória do computador.
- Tipo : Refere-se ao tipo de objeto que é feito. Por exemplo, inteiro, string, lista e similares.
- Valor : Refere-se ao valor que o objeto armazena. Por exemplo, List=[5,6,7] armazenaria os números 5, 6 e 7.
Mesmo que o ID e o Tipo de um objeto não estejam abertos para alteração após a criação, os valores estão abertos a alterações para objetos Mutáveis.
Objetos Mutáveis em Python
Objetos mutáveis são os objetos em Python que podem ser modificados ou alterados. Os códigos servem melhor no ensino sobre a implementação desses objetos. Portanto, vejamos alguns códigos e tentemos entender melhor os objetos mutáveis:
- Para fazer uma lista contendo os nomes das frutas
frutas= ['Manga', 'Mamão', 'Laranja']
- Para imprimir elementos da lista de frutas, divididos por vírgula e espaço
para frutas em frutas:
print(fruta, fim=', ')
Saída [1]: Manga, Mamão, Laranja
- Para imprimir a localização do objeto que é criada no endereço de memória em formato hexadecimal
Explore nossos cursos on-line populares de ciência de dados
Programa Executivo de Pós-Graduação em Ciência de Dados do IIITB | Programa de Certificação Profissional em Ciência de Dados para Tomada de Decisões de Negócios | Mestre em Ciência de Dados pela Universidade do Arizona |
Programa de Certificado Avançado em Ciência de Dados do IIITB | Programa de certificação profissional em ciência de dados e análise de negócios da Universidade de Maryland | Cursos on-line de ciência de dados |
print(hex(id(frutas)))
Saída [2]: 0x1691d7de8c8
- Adicionando uma nova fruta à lista 'frutas'
frutas.append('Uvas')
- Para imprimir os elementos presentes na lista 'frutas', separados por vírgula e espaço
para frutas em frutas:
print(fruta, fim=', ')
Saída [3]: Manga, Mamão, Laranja, Uvas
- Para imprimir a localização do objeto criado no endereço de memória em formato hexadecimal
print(hex(id(frutas)))
Saída [4]: 0x1691d7de8c8
O exemplo mostra que o estado interno 'fruits' do objeto pode ser alterado facilmente adicionando mais uma fruta, 'Grapes' a ele. No entanto, o endereço de memória do objeto permanece o mesmo, provando que um novo objeto não precisa ser criado. Em vez disso, o mesmo objeto pode ser alterado ou modificado. Este exemplo mostra que o objeto com o nome da variável de referência 'fruits', um tipo de lista, é mutável.
Objetos imutáveis em Python
Objetos imutáveis em Python são os objetos cujos valores não podem ser alterados. Vamos seguir um código simples para entender melhor o que são objetos imutáveis e como eles funcionam. O código é dado abaixo: -
- Para criar uma Tupla contendo o nome em inglês dos meses
meses = 'janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto'
- Para imprimir os elementos de tupla meses
imprimir (meses)
Saída [1]: ('Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto')
- Para imprimir a localização do objeto, que é criada no endereço de memória em formato hexadecimal
print(hex(id(meses)))
Saída [2]: 0x1691cc35090
- É importante notar que as tuplas são imutáveis; portanto, eles não incluem mais elementos novos. Portanto, você precisa usar a mesclagem de tuplas com o operador # + para adicionar um novo mês imaginário na tupla 'meses'.
meses += 'Pythonuary'
- Para imprimir os elementos da tupla 'months'.
imprimir (meses)
Saída [3]: ('Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Pythonuary')
- Para imprimir a localização do objeto criado no endereço de memória em formato hexadecimal
print(hex(id(meses)))
Saída [4]: 0x1691cc8ad68
Leia nossos artigos populares de ciência de dados
Plano de carreira em ciência de dados: um guia abrangente de carreira | Crescimento da carreira em ciência de dados: o futuro do trabalho está aqui | Por que a ciência de dados é importante? 8 maneiras pelas quais a ciência de dados agrega valor aos negócios |
Relevância da ciência de dados para gerentes | A melhor folha de dicas de ciência de dados que todos os cientistas de dados deveriam ter | 6 principais razões pelas quais você deve se tornar um cientista de dados |
Um dia na vida do cientista de dados: o que eles fazem? | Mito quebrado: a ciência de dados não precisa de codificação | Business Intelligence vs Data Science: Quais são as diferenças? |
Este exemplo prova que nomes de variáveis podem ser facilmente usados para referenciar um objeto, um tipo de tupla que consiste em oito elementos. No entanto, o ID do local de memória da tupla antiga e nova não é o mesmo. Portanto, o estado interno 'meses' do objeto não pôde ser alterado. Portanto, o gerenciador de programa Python criou um novo objeto no endereço de memória. Além disso, o nome da variável 'months' também fazia referência ao novo objeto com nove elementos. Portanto, provando que a tupla, o objeto com o nome da variável de referência 'months', é um objeto imutável.
Conclusão
Objetos mutáveis são usados principalmente para permitir atualizações futuras. Por outro lado, a imutabilidade também oferece muitas aplicações práticas e eficazes para várias tarefas sensíveis em um local centrado na rede, permitindo o processamento paralelo. Objetos imutáveis, selar os valores e garantir que nenhum dos threads invoque a substituição/atualização dos dados. É ótimo para escrever códigos permanentes que não precisarão de alterações no futuro.
Se você é um programador iniciante ou um entusiasta da ciência de dados, aprender sobre objetos mutáveis e imutáveis em Python irá ajudá-lo a escolher esse campo como sua carreira. A melhor maneira de aprender sobre isso é inscrevendo-se no Programa de Pós-Graduação Executiva em Ciência de Dados no upGrad.
O curso é criado sob a orientação de professores especializados, oferecendo conhecimento aprofundado de tópicos de tendências para preparar milhares de alunos para uma carreira à prova de futuro.
Q1. Quais são as diferenças significativas entre mutável e imutável em Python?
Resposta: O estado ou valor de um objeto está aberto para modificação após a criação em mutable O estado ou valor de um objeto não está aberto para modificação após a criação em imutável Os objetos Mutable não são thread-safe. Objetos imutáveis são completamente seguros para threads Classes mutáveis não são finais. Antes de criar um objeto imutável, você deve tornar a classe final.
Q2. Em Python, o que são tipos de dados mutáveis e imutáveis?
Resposta: Os tipos de dados mutáveis em Python são lista, conjunto, dicionário e classes definidas pelo usuário e tipos de dados imutáveis são int, decimal, float, bool, tuple, string e range.
Q3. As listas são mutáveis em Python?
Resposta: Em Python, as listas são os tipos de dados mutáveis com elementos facilmente modificados. Além disso, você pode substituir os elementos individuais e até alterar a ordem dos elementos após criar a lista.