Python de asignación de tupla

Funciones y métodos de Python

Las tuplas son objetos inmutables . & ldquo; inmutable & rdquo; significa que no puede cambiar los valores dentro de una tupla. Solo puede eliminarlos. Si intenta asignar un nuevo valor a un elemento en una variable, encontrará el & ldquo; typeerror: & lsquo; tuple & rsquo; el objeto no admite la asignación de elementos & rdquo; error.

En esta guía, analizamos qué significa este error y por qué puede experimentarlo. Veremos un ejemplo de este error para que pueda aprender a resolverlo en su código.




typeerror: & lsquo; tuple & rsquo; El objeto no admite la asignación de elementos

Si bien las tuplas y las listas almacenan secuencias de datos, tienen algunas distinciones. Mientras que puede cambiar los valores en una lista, los valores dentro de una tupla no se pueden cambiar. Además, las tuplas se almacenan entre paréntesis, mientras que las listas se declaran entre corchetes.

Debido a que no puede cambiar los valores en una tupla, la asignación de elementos no funciona.

Considere el siguiente fragmento de código:

 honor_roll = ["Bill", "Jeff", "Lucy "," Lindsay "] honor_roll [0] =" Holly "

Este fragmento de código nos permite cambiar el primer valor en & ldquo; honor_roll & rdquo; list a Holly. Esto funciona porque las listas son mutables. Puede cambiar sus valores. El mismo código no funciona con datos almacenados en una tupla.




Un escenario de ejemplo

Creemos un programa que rastree los cursos ofrecidos por una escuela secundaria. Los estudiantes en su último año pueden elegir de una clase, pero algunas clases están siendo reemplazadas.

Comience creando una colección de nombres de clases:

81 El% de los participantes afirmó que se sentía más seguro acerca de sus perspectivas laborales de tecnología después de asistir a un campamento de entrenamiento. Asigne a un bootcamp hoy mismo.

El graduado promedio de bootcamp pasó menos de seis meses en la transición profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.

Hemos creado una tupla que almacena los nombres de cada clase que se ofrece.

El departamento de ciencias ha notificado a la escuela que ya no se ofrece psicología debido a la falta de números en la clase. Vamos a reemplazar la psicología por la filosofía, ya que la clase de filosofía acaba de abrir algunos espacios.


Para hacer esto, usamos el operador de asignación:

 classes [3] = "Filosofía" 

Este código reemplazará el valor en la posición del índice 3 en nuestra lista de clases con & ldquo; Filosofía & rdquo ;. A continuación, imprimimos nuestra lista de clases a la consola para que el usuario pueda ver qué clases se ofrecen activamente:

 imprimir ("Las clases que se ofrecen son:") para c en clases: print (c) 

Use un for loop para imprimir cada clase en nuestra tupla en la consola. Ejecutemos nuestro código y veamos qué sucede:

 Traceback (última llamada más reciente): archivo" main.py ", línea 3, en & lt; módulo & gt; clas ses [3] = "Filosofía" TypeError: el objeto 'tuple' no admite la asignación de elementos 

Nuestro código devuelve un error.




La solución

Hemos intentado utilizar el operador de asignación para cambiar un tema en nuestra lista. Las tuplas son inmutables, por lo que no podemos cambiar sus valores. Es por eso que nuestro código devuelve un error.

Para resolver este problema, convertimos nuestras & ldquo; clases & rdquo; tupla en una lista . Esto nos permitirá cambiar los valores en nuestra secuencia de nombres de clases.

Haga esto usando el método list () :

 clases = ("Química", "Política", "Biología", "Psicología") as_list = lista (clases) as_list [3] = "Filosofía" print ("Las clases que se ofrecen son:") para c en as_list: print (c) 

Usamos el método list () para convertir el valor de & ldquo; clases & rdquo; a una lista. Asignamos esta nueva lista a la variable & ldquo; as_list & rdquo ;. Ahora que tenemos nuestra lista de clases almacenada como una lista, podemos cambiar las clases existentes en la lista.

Ejecutemos nuestro código:

 Las clases que se ofrecen son: Química Política Biología Filosofía 

Nuestro código cambia con éxito la & ldquo; Psicología & rdquo; clase a & ldquo; Filosofía & rdquo ;. Luego, nuestro código imprime la lista de clases en la consola.


Si necesitamos almacenar nuestros datos como una tupla, siempre podemos volver a convertir nuestra lista en una tupla una vez que hayamos cambiado los valores que queremos cambiar. Podemos hacer esto usando el método tuple () :

 as_tuple = tuple (as_list) print (as_tuple) 

Este código convierte & ldquo; as_list & rdquo; en una tupla e imprime el valor de nuestra tupla en la consola:

 (' Química', 'Política',' Biología', 'Filosofía') 

Podríamos usar esta tupla más adelante en nuestro código si necesitáramos nuestros nombres de clase almacenados como una tupla.




Conclusión

El error & ldquo; typeerror: & lsquo; tuple & rsquo; no admite la asignación de elementos & rdquo; aparece cuando intenta cambiar un valor en una tupla usando la asignación de elementos.

Para solucionar este error, convierta una tupla en una lista antes de cambiar los valores en una secuencia. Opcionalmente, puede volver a convertir la lista en una tupla.

Ahora está listo para corregir este error en su código como un profesional !

"Career Karma entró en mi vida cuando más lo necesitaba y rápidamente me ayudó a combinar con un bootcamp. Dos meses después de graduarme, encontré el trabajo de mis sueños que se alineaba con mis valores y metas en la vida! "

Venus, ingeniero de software de Rockbot





Python de asignación de tupla: StackOverflow Questions

Tutorials