-1
votes

Index de la liste de traversée en utilisant une boucle | type (s) d'opérande non pris en charge (s) pour -: 'int' et 'tuple' en python

n = 2
for tuple in result :
     for n in result :
         if result[i-n][3] > result[i-1][3] and result[i-n][1] > result[i][1] :
             print('Success')
     n = n + 1
i = i + 1

3 commentaires

Nous ne voyons pas où vous défiez ì - mais n est extrait de votre liste de tuples ( pour n en résultat: ). Vous ne pouvez pas déduire un tuple de i ...


Peu d'erreurs - tuple ne doivent pas être utilisés pour vos noms de variables - c'est un mot clé dédié à Python. Où est i ? Vous utilisez simplement résultat [I-N] Nous ne pouvons pas voir où est i .


i est utilisé comme itérateur pour la première boucle qui est un entier I = 0, puis je = i + 1 mais je suis venu connaître mon erreur - la seconde boucle ne doit pas être pour n en résultat, mais plutôt pour n dans la plage (len (résultat)).


3 Réponses :


0
votes

Vous obtenez cette erreur parce que n est un objet tuple et non un entier. Dans la première valeur d'itération de N est ('a', 'B', 2,3) non 2. Dans chaque valeur d'itération de N change de tuple en tuple.


1 commentaires

Désolé, j'ai commis une erreur la seconde pour la boucle n'aurait pas dû être pour n en résultat, mais cela aurait plutôt dû être pour n dans la plage (2 :) mais merci, j'ai corrigé l'erreur et cela a fonctionné. Je sais que c'était boiteux mais je suis nouveau dans ce monde codant de Python :)



0
votes

Tout d'abord son intelligent pour éviter d'utiliser le mot tuple dans votre code (comme à l'aide de la liste, STR ou INT dans votre code): https://visalgit.readthedocs.io/fr/Latest/pages/naming_convention. HTML

Ce n'est pas complètement clair pour moi ce que vous voulez que votre code le fait? Parce que vous souhaitez comparer des entiers (chiffres) avec des chaînes (texte) qui conduiraient éventuellement à une erreur.


1 commentaires

Désolé, j'ai commis une erreur la seconde pour la boucle n'aurait pas dû être pour n en résultat, mais cela aurait plutôt dû être pour n dans la plage (2 :) mais merci, j'ai corrigé l'erreur et cela a fonctionné. Je sais que c'était boiteux mais je suis nouveau à cela :)



0
votes

Désolé, j'ai commis une erreur la seconde pour la boucle ne devrait pas avoir été pour n en résultat, mais cela aurait plutôt dû être pour n dans la plage (2 :)

Mais merci j'ai corrigé l'erreur et cela a fonctionné.

Je sais que c'était boiteux mais je suis nouveau à ceci :)


0 commentaires