Python d’affectation de tuple

Les tuples sont des objets immuables. "Immuable" signifie que vous ne pouvez pas modifier les valeurs à l’intérieur d’un tuple. Vous ne pouvez que les supprimer. Si vous essayez d’affecter une nouvelle valeur à un élément dans une variable, vous rencontrerez l’erreur de type "typeerror : ‚Äòtuple‚Äô l’objet ne prend pas en charge l’affectation d’élément " error.

Dans ce guide, nous discutons de ce que signifie cette erreur et pourquoi vous pouvez la rencontrer. Nous allons parcourir un exemple de cette erreur afin que vous puissiez apprendre à la résoudre dans votre code.

erreur de type : ‚Äòtuple‚Äô l’objet ne prend pas en charge l’affectation d’éléments

Bien que les tuples et les listes stockent tous deux des séquences de données, ils présentent quelques distinctions. Alors que vous pouvez modifier les valeurs dans une liste, les valeurs à l’intérieur d’un tuple ne peuvent pas être modifiées. De plus, les tuples sont stockés entre parenthèses alors que les listes sont déclarées entre crochets.

Parce que vous ne pouvez pas modifier les valeurs dans un tuple, l’affectation des éléments ne fonctionne pas.

Considérez l’extrait de code suivant :

Cet extrait de code nous permet de modifier la première valeur du " honor_roll" liste à Holly. Cela fonctionne car les listes sont modifiables. Vous pouvez modifier leurs valeurs. Le même code ne fonctionne pas avec les données stockées dans un tuple.

Un exemple de scénario

Créons un programme qui suit les cours proposés par un lycée. Les étudiants en dernière année sont autorisés à choisir parmi une classe, mais quelques classes sont remplacées.

Commencez par créer une collection de noms de classe :

81 % des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi en technologie après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Nous avons créé un tuple qui stocke les noms de chaque classe offerte.

Le département des sciences a informé l’école que la psychologie n’est plus offerte en raison d’un manque de nombre dans la classe. Nous allons remplacer la psychologie par la philosophie car le cours de philosophie vient d’ouvrir quelques espaces.

Pour ce faire, nous utilisons l’opérateur d’affectation :

Ce code remplacera la valeur à la position d’index 3 dans notre liste de classes par "Philosophie". Ensuite, nous imprimons notre liste des classes à la console afin que l’utilisateur puisse voir quelles classes sont activement proposées :

Utilisez une boucle for pour imprimer chaque classe de notre tuple sur la console. Exécutons notre code et voyons ce qui se passe :

Notre code renvoie une erreur.

La solution

Nous avons essayé d’utiliser l’opérateur d’affectation pour changer un sujet dans notre liste. Les tuples sont immuables, nous ne pouvons donc pas modifier leurs valeurs. C’est pourquoi notre code renvoie une erreur.

Pour résoudre ce problème, nous convertissons nos "classes‚" tuple dans une liste. Cela nous permettra de modifier les valeurs dans notre séquence de noms de classes.

Faites cela en utilisant la méthode list() :

Nous utilisons la méthode list() pour convertir la valeur des "classes‚" à une liste. Nous attribuons cette nouvelle liste à la variable "as_list‚". Maintenant que notre liste de classes est stockée sous forme de liste, nous pouvons modifier les classes existantes dans la liste.

Laissons exécuter notre code :

Notre code change avec succès la "Psychologie‚" classe à la "philosophie". Notre code imprime ensuite la liste des classes sur la console.

Si nous devons stocker nos données sous forme de tuple, nous pouvons toujours reconvertir notre liste en tuple une fois que nous avons modifié les valeurs que nous souhaitons modifier. Nous pouvons le faire en utilisant le méthode tuple() :

Ce code convertit "as_list‚" en un tuple et imprime la valeur de notre tuple sur la console :

Nous pourrions utiliser ce tuple plus tard dans notre code si nous avions besoin que nos noms de classe soient stockés sous forme de tuple.

Conclusion

L’erreur " typeerror : " tuple " ne prend pas en charge l’affectation d’élément " est levée lorsque vous essayez de modifier une valeur dans un tuple utilisant l’affectation d’élément.

Pour résoudre cette erreur, convertissez un tuple en liste avant de modifier les valeurs dans une séquence. En option, vous pouvez ensuite reconvertir la liste en tuple.

Vous êtes maintenant prêt à corriger cette erreur dans votre code comme un pro !

"Carrière Karma est entré dans ma vie au moment o√π j’en avais le plus besoin et m’a rapidement aidé à suivre un bootcamp. Deux mois après l’obtention de mon diplôme, j’ai trouvé l’emploi de mes rêves qui correspondait à mes valeurs et objectifs dans la vie !"

Venus, ingénieur logiciel chez Rockbot

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method