IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

TypeError: 'int' object is not iterable


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 88
    Par défaut TypeError: 'int' object is not iterable
    Rebonjour !!

    mon problème est que je souhaite comparer entre les élements de deux listes et que si deux élements correspondent alors je crée une nouvelle liste et je mets l'element correspondant à l'intérieur : en python ça donne la chose suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    def SplitDom( liste1,liste2 ) :     # on separe les domaines en ceux possedant un patch et ceux qui n'en ont pas
        split_1 = []
        split_2 = []
        for clk in liste1:
             for cl in liste1[2]:  # il s'agit de la liste split et liste2 c'est patch
                  for blk in liste2:
                       for clk in liste2[0]:     # il s'agit du tag initiaux des domaines generaux
    		   # il s'agit des tags initiaux des domaines contenant des patchs
                           if blk == clk:  # on s'assure que le domaine k contient bien un patch
                           split_1.append(liste1) # si oui  on cree une liste pour les domaines contenant des patchs
    	               else:
                           split_2.append(liste1) # sinon on cree une autre liste pour les domaines qui ne contiennent pas de patch.
        return ( split_1, split_2 ) # on retourne les deux listes
    je reçois comme erreur :
    TypeError: 'int' object is not iterable


    Est ce que vous auriez une idée de comment surmonter cela??

    Merci d'avance !!

    Manal

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    bonjour,

    hmm le message d'erreur indique que c'est un appel à range() qui foire et je n'en vois pas dans ton code source. ça doit être ailleurs

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 88
    Par défaut
    Je viens de corriger mon erreur, et j'ai mis le bon type d'erreur !!

    j'avais mis range avant dans mpn code dans les boucles for pour voir ce que ça changeait! mais ça ne changeait que le type d'erreur !

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    les for cl in liste1[2]: # il s'agit de la liste split et liste2 c'est patch
    et for clk in liste2[0]: # il s'agit du tag initiaux des domaines generaux
    supposent "implicitement" que le contenu de liste1[2] et de liste2[0] sont des 'iterables'
    L'erreur TypeError: 'int' object is not iterable dit qu'ils n'en sont pas?

    Pour le reste, je ne sais que dire car si la description suggère qu'on part d'une liste de... dans laquelle on fait un tri pour retourner une liste avec et une liste sans. Je ne comprends pas trop pourquoi nous avons deux listes en entrée.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 88
    Par défaut
    Le but de la fonction est de comparer deux listes ( liste1 et liste 2), en comparant le 3ème élement de la liste1 (liste1[2]) et du premier element de la liste 2 (liste2[0]) puis ensuite de créer une nouvelle liste des élements de la liste 1 en cas d'égalité et d'une autre liste en cas de différence.
    je veux donc qu'il parcoure les élements de la liste2[0] et qu'il les compare avec les élements de la liste1[2]

    liste2[0]=[2, 1, 2, 1] # par exemple
    liste1[2]=[11,11,5,2,4,6,1,5,8,7,3]

    voilà!!!

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par manaliac Voir le message
    Le but de la fonction est de comparer deux listes ( liste1 et liste 2), en comparant le 3ème élement de la liste1 (liste1[2]) et du premier element de la liste 2 (liste2[0]) puis ensuite de créer une nouvelle liste des élements de la liste 1 en cas d'égalité et d'une autre liste en cas de différence.
    je veux donc qu'il parcoure les élements de la liste2[0] et qu'il les compare avec les élements de la liste1[2]

    liste2[0]=[2, 1, 2, 1] # par exemple
    liste1[2]=[11,11,5,2,4,6,1,5,8,7,3]

    voilà!!!
    Cela suppose que les éléments liste2[0] et liste1[2] soient eux même des listes. L'erreur (le contenu n'est pas itérable) montre que ce n'est pas le cas.
    Donc:
    liste2[0] n'est pas de la forme [2, 1, 2, 1]
    et liste1[2] n'est pas de la forme [11,11,5,2,4,6,1,5,8,7,3]

    A partir de là, vous avez un problème de conception grand mot pour dire que si votre algorithme se base sur des hypothèses fausses, les résultats seront tellement incertains qu'il ne mérite par encore d'être codé.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. TypeError:'Nonetype' object is not iterable
    Par Mozard Yao dans le forum Odoo (ex-OpenERP)
    Réponses: 2
    Dernier message: 30/05/2014, 11h42
  2. TypeError: 'int' object is not iterable
    Par lewiss66 dans le forum Général Python
    Réponses: 2
    Dernier message: 18/10/2012, 16h37
  3. Erreur " 'int' object is not iterable"
    Par ti'chou dans le forum Général Python
    Réponses: 14
    Dernier message: 25/09/2012, 17h24
  4. "'int' object is not callable"
    Par dingoth dans le forum Général Python
    Réponses: 2
    Dernier message: 22/12/2010, 17h38
  5. TypeError: 'file' object is not callable
    Par MariemEA dans le forum Général Python
    Réponses: 7
    Dernier message: 09/07/2010, 21h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo