Maison > développement back-end > Tutoriel Python > Pourquoi l'appel de « .index » sur une liste après avoir utilisé la méthode « .reverse() » entraîne-t-il une « AttributeError » ?

Pourquoi l'appel de « .index » sur une liste après avoir utilisé la méthode « .reverse() » entraîne-t-il une « AttributeError » ?

DDD
Libérer: 2024-11-19 09:43:03
original
239 Les gens l'ont consulté

Why does calling `.index` on a list after using `.reverse()` method result in an `AttributeError`?

Inverser une liste avec des méthodes chaînables

Dans l'extrait de code que vous avez fourni, vous essayez d'inverser une liste à l'aide de la méthode .reverse(), puis de la chaîner immédiatement une autre méthode (.index) sur la liste inversée. Cependant, .reverse() modifie la liste sur place et renvoie None, c'est pourquoi vous recevez l'erreur AttributeError : l'objet 'NoneType' n'a pas d'attribut 'index'.

Pour éviter ce problème, vous pouvez utiliser slicer pour renvoyer une copie inversée de la liste. Le découpage avec [::-1] inverse l'ordre des éléments dans la liste et crée une nouvelle liste sans modifier celle d'origine :

formation[::-1]
Copier après la connexion

Cette expression renvoie une copie inversée de la liste de formation, que vous peut ensuite utiliser pour appeler .index sur :

def solution(formation):
    return (formation.index(bCamel) > (len(formation) - 1 - (formation[::-1]).index(fCamel)))
Copier après la connexion

Avec cette modification, la fonction solution déterminera avec succès si l'indice de 'B' (bCamel) dans la liste de formation est supérieur que l'indice de 'F' (fCamel) dans la liste de formations inversée, moins la longueur de la liste de formations. Il s'agit essentiellement d'une vérification pour voir si « B » vient avant « F » dans la formation inversée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal