O que é mutável e imutável em Python?

Publicados: 2022-09-22

Em 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

Índice

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.