l’objet nonetype n’est pas un Python inscriptible

Les objets Python avec la valeur Aucun ne sont pas accessibles à l’aide de l’indexation. En effet, les valeurs None ne contiennent pas de données avec des numéros d’index.

Si vous essayez d’accéder à un élément à partir d’une valeur None à l’aide de l’indexation, vous rencontrez une "TypeError : ‚ÄòNoneType‚Äô l’objet n’est pas inscriptible " error.

Dans ce guide, nous expliquons ce que signifie cette erreur et détaillons son fonctionnement. Nous parcourons un exemple de cette erreur afin que vous puissiez trouver comment la résoudre dans votre programme.

TypeError : ‚ÄòNoneType‚Äô l’objet n’est pas inscriptible

Les objets inscriptibles sont des valeurs accessibles à l’aide de l’indexation. "Indexation" est un autre mot pour dire "subscript‚", qui fait référence au travail avec des parties individuelles d’une collection plus vaste.

Par exemple, listes, les tuples et les dictionnaires sont tous des objets inscriptibles. Vous pouvez récupérer des éléments de ces objets à l’aide de l’indexation. Les valeurs Aucun ne sont pas inscriptibles car elles ne font pas partie d’un ensemble de valeurs plus large.

L’erreur "TypeError : ‚ÄòNoneType‚Äô l’objet n’est pas inscriptible " erreur est courante si vous affectez le résultat d’une méthode de liste intégrée comme sort(), reverse() ou append() à une variable. En effet, ces méthodes de liste modifient une liste existante sur place. Par conséquent, ils renvoient une valeur Aucun.

Un exemple de scénario

Créez une application qui permet de suivre les informations sur les résultats des tests d’un élève à l’école. Nous commençons par définir une liste de résultats aux tests des étudiants :

Notre liste des résultats des tests des étudiants contient deux dictionnaires. Ensuite, nous demandons à l’utilisateur d’insérer des informations qui doivent être ajoutées aux "scores" list :

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 associé à 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 suivons trois données : le nom d’un étudiant, sa note de test et sa note de test représentée sous forme de lettre.

Ensuite, nous ajoutons ces informations à notre liste de "scores". Pour ce faire, nous créons un dictionnaire que nous ajouterons à la liste en utilisant le méthode append() :

Ce code ajoute un nouvel enregistrement à la liste des "scores". résultat de la méthode append() est affecté à la variable "new_scores‚".

Enfin, imprimez le dernier élément de notre liste de "new_scores‚" afin que nous peut voir si cela a fonctionné :

La valeur -1 représente le dernier élément de la liste. Exécutez notre code et voyez ce qui se passe :

Notre code renvoie une erreur.

La solution

Notre code demande avec succès à notre utilisateur d’insérer des informations sur un étudiant. Notre code ajoute ensuite un enregistrement aux "new_scores‚" liste. Le problème est lorsque nous essayons d’accéder à un élément à partir des "new_scores‚" list.

Notre code ne fonctionne pas car append() renvoie None. Cela signifie que nous attribuons une valeur Aucun aux "nouveaux_scores". append() renvoie None car il ajoute un élément à une liste existante. La méthode append() ne crée pas de nouvelle liste.

Pour résoudre cette erreur, nous devons supprimer la déclaration des "new_scores‚" variable et laissez scores.append() sur sa propre ligne :

Nous ne référençons désormais que les "scores‚" variable. Voyons ce qui se passe lorsque nous exécutons notre programme :

Notre code s’exécute avec succès. Tout d’abord, notre utilisateur est invité à insérer des informations sur les résultats des tests d’un étudiant. Ensuite, nous ajoutons cette information aux "scores" dictionnaire. Notre code imprime la nouvelle valeur du dictionnaire qui a été ajoutée à notre liste afin que nous sachions que notre code a fonctionné.

Conclusion

L’erreur "TypeError : ‚ÄòNoneType‚Äô object is not subscriptable" est générée lorsque vous essayez d’accéder à des éléments à partir d’une valeur None en utilisant l’indexation .

Ceci est courant si vous utilisez une méthode intégrée pour manipuler une liste et affecter le résultat de cette méthode à une variable. Les méthodes intégrées renvoient une valeur None qui ne peut pas être manipulée à l’aide la syntaxe d’indexation.

Vous êtes maintenant prêt à résoudre cette erreur Python courante comme un expert.