¿Qué es mutable e inmutable en Python?

Publicado: 2022-09-22

En Python, cada variable contiene una instancia de cualquier objeto de dos tipos, es decir, mutable e inmutable. Se asigna una identificación de objeto única a un objeto cada vez que se crea una instancia. El tiempo de ejecución define el tipo de objeto y no se puede cambiar más adelante.

Sin embargo, el cambiable es un objeto mutable. Cuando decimos mutable, significa que el estado interno del objeto se puede mutar. Al mismo tiempo, el estado del objeto incapaz de cambiar después de la creación es un objeto inmutable. Tanto los estados mutables como los inmutables son parte integral de la estructura de datos de Python.

La característica de mutabilidad de objetos en Python lo convierte en un lenguaje tipado dinámicamente. Mutable e Immutable en Python es un concepto bastante esencial, pero a menudo se confunden debido a su naturaleza intransitiva de inmutabilidad.

Averigüemos todo sobre ellos y las diferencias clave.

Consulte nuestros cursos en línea de ciencia de datos para mejorar sus habilidades

Tabla de contenido

Principales habilidades de ciencia de datos para aprender a mejorar

SL. No Principales habilidades de ciencia de datos para aprender en 2022
1 Cursos en línea de análisis de datos Cursos en línea de estadística inferencial
2 Cursos en línea de prueba de hipótesis Cursos en línea de regresión logística
3 Cursos de regresión lineal Álgebra lineal para análisis Cursos en línea

Estado mutable en Python

La palabra 'Mutable' se traduce directamente como 'cambiable' o algo que puede ser 'mutado'. Define un objeto abierto a cambios y, en Python, 'mutable' se relaciona con la capacidad de un objeto para cambiar valores. Estos objetos a menudo almacenan la recopilación de datos y contienen listas de tipos, conjuntos, diccionarios y clases definidas por el usuario integrados.

Estado de definición inmutable en Python

Inmutable en Python es cuando no puede cambiar el tipo de objeto con el tiempo. Si no es posible alterar el valor de un objeto en Python, se le conoce como objeto inmutable. Una vez que se crea un objeto inmutable, su valor permanece permanente e inalterable. Los objetos de tipo incorporados inmutables son números, cadenas, tuplas, conjuntos congelados y clases definidas por el usuario.

Objetos en Python

Antes de profundizar en la mutabilidad y la inmutabilidad en Python, primero aprendamos qué son los objetos. En Python, todo se considera un objeto y cada objeto tiene tres atributos:

  • Identidad: Esto se refiere a la dirección del objeto en la memoria de la computadora.
  • Tipo : Esto se refiere al tipo de objeto que se hace. Por ejemplo, entero, cadena, lista y similares.
  • Valor : Esto se refiere al valor que almacena el objeto. Por ejemplo, List=[5,6,7] almacenaría los números 5, 6 y 7.

Incluso si el ID y el Tipo de un objeto no están abiertos a cambios después de la creación, los valores están abiertos a modificaciones para objetos mutables.

Objetos mutables en Python

Los objetos mutables son los objetos en Python que se pueden mutar o cambiar. Los códigos sirven mejor para enseñar sobre la implementación de estos objetos. Por lo tanto, veamos algunos códigos e intentemos comprender mejor los objetos mutables:

  • Para hacer una lista que contenga los nombres de las frutas.

frutas= ['Mango', 'Papaya', 'Naranja']

  • Para imprimir elementos de la lista de frutas, divididos por una coma y un espacio

para fruta en frutas:

imprimir(fruta, fin=', ')

Salida [1]: Mango, Papaya, Naranja

  • Para imprimir la ubicación del objeto que se crea en la dirección de memoria en formato hexadecimal

Explore nuestros cursos populares en línea de ciencia de datos

Programa Ejecutivo de Postgrado en Data Science del IIITB Programa de Certificado Profesional en Ciencia de Datos para la Toma de Decisiones Empresariales Maestría en Ciencias en Ciencia de Datos de la Universidad de Arizona
Programa de Certificado Avanzado en Ciencia de Datos de IIITB Programa de certificado profesional en ciencia de datos y análisis empresarial de la Universidad de Maryland Cursos en línea de ciencia de datos

imprimir (hexadecimal (id (frutas)))

Salida [2]: 0x1691d7de8c8

  • Agregar una nueva fruta a la lista 'frutas'

frutas.append('Uvas')

  • Para imprimir los elementos presentes en la lista 'frutas', separados por una coma y un espacio

para fruta en frutas:

imprimir(fruta, fin=', ')

Salida [3]: Mango, Papaya, Naranja, Uvas

  • Para imprimir la ubicación del objeto creado en la dirección de memoria en formato hexadecimal

imprimir (hexadecimal (id (frutas)))

Salida [4]: ​​0x1691d7de8c8

El ejemplo muestra que el estado interno del objeto 'frutas' puede cambiar fácilmente al agregarle una fruta más, 'Uvas'. Sin embargo, la dirección de memoria del objeto sigue siendo la misma, lo que demuestra que no es necesario crear un nuevo objeto. Más bien, el mismo objeto podría cambiarse o mutarse. Este ejemplo muestra que el objeto con el nombre de variable de referencia 'frutas', un tipo de lista, es mutable.

Objetos inmutables en Python

Los objetos inmutables en Python son los objetos cuyos valores no se pueden cambiar. Sigamos un código simple para comprender mejor qué son los objetos inmutables y cómo funcionan. El código se da a continuación: -

  • Para crear una Tupla que contenga el nombre en inglés de los meses.

meses = 'enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto'

  • Para imprimir los elementos de tupla meses

imprimir(meses)

Salida [1]: ('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto')

  • Para imprimir la ubicación del objeto, que se crea en la dirección de memoria en formato hexadecimal

imprimir (hexadecimal (id (meses)))

Salida [2]: 0x1691cc35090

  • Es importante notar que las tuplas son inmutables; por lo tanto, no logran incluir más elementos nuevos. Por lo tanto, debe usar la combinación de tuplas con el operador # + para agregar un nuevo mes imaginario en la tupla 'meses'.

meses += 'Pytonuary'

  • Para imprimir los elementos de la tupla 'meses'.

imprimir(meses)

Salida [3]: ('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Pythonuary')

  • Para imprimir la ubicación del objeto creado en la dirección de memoria en formato hexadecimal

imprimir (hexadecimal (id (meses)))

Salida [4]: ​​0x1691cc8ad68

Lea nuestros populares artículos de ciencia de datos

Trayectoria profesional en ciencia de datos: una guía profesional completa Crecimiento profesional en ciencia de datos: el futuro del trabajo ya está aquí ¿Por qué es importante la ciencia de datos? 8 formas en que la ciencia de datos aporta valor al negocio
Relevancia de la ciencia de datos para los gerentes La última hoja de trucos de ciencia de datos que todo científico de datos debería tener Las 6 razones principales por las que debería convertirse en científico de datos
Un día en la vida del científico de datos: ¿Qué hacen? Mito reventado: la ciencia de datos no necesita codificación Business Intelligence vs Data Science: ¿Cuáles son las diferencias?

Este ejemplo demuestra que los nombres de variables se pueden usar fácilmente para hacer referencia a un objeto, una especie de tupla que consta de ocho elementos. Sin embargo, la ID de ubicación de memoria de la tupla antigua y nueva no es la misma. Por lo tanto, el estado interno del objeto 'meses' no se pudo cambiar. Por lo tanto, el administrador del programa Python creó un nuevo objeto en la dirección de memoria. Además, el nombre de la variable 'meses' también hacía referencia al nuevo objeto con nueve elementos. Por lo tanto, se prueba que la tupla, el objeto con el nombre de variable de referencia 'meses', es un objeto inmutable.

Conclusión

Los objetos mutables se utilizan principalmente para permitir futuras actualizaciones. Por otro lado, la inmutabilidad también ofrece muchas aplicaciones prácticas y efectivas para varias tareas sensibles en un lugar centrado en la red, lo que permite el procesamiento paralelo. Objetos inmutables, selle los valores y asegúrese de que ninguno de los subprocesos invoque la sobrescritura/actualización de los datos. Es excelente para escribir códigos permanentes que no necesitarán cambios en el futuro.

Si es un programador en ciernes o un entusiasta de la ciencia de datos, aprender sobre objetos mutables e inmutables en Python le ayudará a elegir este campo como su carrera. La mejor manera de conocerlos es inscribiéndote en el Programa Ejecutivo de Posgrado en Ciencia de Datos en upGrad.

El curso se crea bajo la guía de profesores expertos, brindando un conocimiento profundo de los temas de moda para preparar a miles de estudiantes para una carrera a prueba de futuro.

Q1. ¿Cuáles son las diferencias significativas entre mutable vs inmutable en Python?

Respuesta: El estado o valor de un objeto está abierto a modificación después de la creación en mutable El estado o valor de un objeto no está abierto a modificación después de la creación en inmutable Los objetos mutables no son seguros para subprocesos. Los objetos inmutables son completamente seguros para subprocesos. Las clases mutables no son definitivas. Antes de crear un objeto inmutable, debe hacer que la clase sea final.

Q2. En Python, ¿qué son los tipos de datos mutables e inmutables?

Respuesta: Los tipos de datos mutables en Python son listas, conjuntos, diccionarios y clases definidas por el usuario, y los tipos de datos inmutables son int, decimal, float, bool, tuple, string y range.

Q3. ¿Las listas son mutables en Python?

Respuesta: En Python, las listas son tipos de datos mutables con elementos fácilmente modificables. Además, puede reemplazar los elementos individuales e incluso cambiar el orden de los elementos después de crear la lista.