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 :

Compteur avec Liste de Listes


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Compteur avec Liste de Listes
    Bonjour,
    j'ai une liste qui contient plusieurs listes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Liste1 = ('FAUX', 'VRAI', 'FAUX', 'FAUX', 'FAUX', 'VRAI', 'FAUX', 'VRAI', 'VRAI', 'VRAI', 'VRAI', 'VRAI', 'FAUX', 'FAUX', 'VRAI', 'FAUX', 'VRAI', 'FAUX', 'VRAI')
    Liste2 = ('VRAI', 'VRAI', 'VRAI', 'VRAI', 'VRAI', 'VRAI', 'VRAI', 'VRAI', 'VRAI', 'VRAI', 'VRAI', 'VRAI', 'FAUX', 'VRAI', 'VRAI', 'VRAI', 'VRAI', 'FAUX', 'VRAI')
    Liste3 = ('FAUX', 'FAUX', 'VRAI', 'VRAI', 'FAUX', 'VRAI', 'VRAI', 'VRAI', 'VRAI', 'FAUX', 'FAUX', 'VRAI', 'FAUX', 'FAUX', 'FAUX', 'VRAI', 'VRAI', 'FAUX', 'FAUX')
     
    ListeM = (Liste1, Liste2, Liste3)

    Je voudrai compter le nombre de "VRAI" présent dans chaque liste. Si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data = listeM[1].count("VRAI")
    j'obtiens : data = 0.

    Pourriez-vous me donner la bonne formule svp?

    Merci de votre aide.
    Cordialement,
    Arsène

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 744
    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 744
    Par défaut
    Salut,

    Citation Envoyé par Arsene12 Voir le message
    Pourriez-vous me donner la bonne formule svp?
    C'est une "bonne formule".
    Par contre, ce que vous appelez "listes" sont en fait des "tuple"s.
    Et le code que vous avez posté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ListeM = (Liste1, Liste2, Liste3)
    data = listeM[1].count("VRAI")
    ListeM n'étant pas listeM... çà ne fonctionne pas.

    note: çà sert à rien de faire des copie/coller de bout de code qu'on sera obligé de compléter pour constater le problème que vous mentionnez. Pourquoi ne pas écrire un petit script cohérent dont vous pouvez vérifier le fonctionnement avant de poster?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Par contre, ce que vous appelez "listes" sont en fait des "tuple"s.
    Et le code que vous avez posté:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ListeM = (Liste1, Liste2, Liste3)
    data = listeM[1].count("VRAI")
    ListeM n'étant pas listeM... çà ne fonctionne pas.
    J'ai failli parler de tuples dans une liste mais j'ai cru que dans cet exemple il n'y avait pas de différence.
    Je m'excuse pour l'erreur que j'ai faite ensuite. Le code que j'aurai du taper était bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ListeM = (Liste1, Liste2, Liste3)
    data = ListeM[1].count("VRAI")

    Citation Envoyé par VinsS Voir le message
    À mon avis il doit y avoir autre chose que cela dans ton code qui produise data == 0
    [/code]
    Vous avez raison en effet. Y'avait une erreur dans mon code, la liste (ListeM) ne contenait que des 0. J'ai rectifié et maintenant tout fonctionne.

    J'aurai du faire un print(ListeM [0]), et j'aurai tout de suite vu d'où venait l'erreur.

    Merci de vos remarques. À l'avenir, j’essaierai d'éviter les fautes d'inattention et vérifierai toujours le code en amont.

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    À mon avis il doit y avoir autre chose que cela dans ton code qui produise data == 0

    Parce que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    >>> l = ('FAUX', 'VRAI', 'FAUX', 'FAUX', 'FAUX', 'VRAI', 'FAUX', 'VRAI', 'VRAI', 'VRAI', 'VRAI', 'VRAI', 'FAUX', 'FAUX', 'VRAI', 'FAUX', 'VRAI', 'FAUX', 'VRAI')
    >>> l1 = ('FAUX', 'VRAI', 'FAUX', 'FAUX', 'FAUX', 'VRAI', 'FAUX', 'VRAI', 'VRAI', 'VRAI', 'VRAI', 'VRAI', 'FAUX', 'FAUX', 'VRAI', 'FAUX', 'VRAI', 'FAUX', 'FAUX')
    >>> l2 = (l, l1)
    >>> l2[0].count("VRAI")
    10
    >>> l2[1].count("VRAI")
    9

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Liste de listes avec compteur
    Par lilly74 dans le forum Général Python
    Réponses: 3
    Dernier message: 09/03/2010, 09h49
  2. Regrouper une liste en liste de listes
    Par West01 dans le forum Prolog
    Réponses: 12
    Dernier message: 14/03/2008, 14h07
  3. Probleme avec les double Liste chainees
    Par BernardT dans le forum Langage
    Réponses: 1
    Dernier message: 12/07/2005, 17h22
  4. Probleme avec les cmd LIST ou NLST
    Par enox dans le forum Développement
    Réponses: 4
    Dernier message: 16/05/2005, 01h47

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