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 :

Retourner la valeur d'une liste qui se retrouve le plus souvent


Sujet :

Python

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2003
    Messages : 20
    Points : 13
    Points
    13
    Par défaut Retourner la valeur d'une liste qui se retrouve le plus souvent
    Bonjour,
    J'ai une liste qui est constituée d'entiers naturels : [0, -1, 0, 1, 0, 0]
    Je voudrais connaitre quelle est la valeur de cette liste qui se retrouve le plus souvent, par exemple, ici, ce serait la valeur 0.
    Existe-t-il une fonction de python qui me donne directement cette valeur ?
    Si oui, qu'elle est cette fonction, si non, avez-vous une idée de comment faire ?
    Merci

  2. #2
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    je ne crois pas qu'il y ait de fonction prédéfinie

    tu peux faire comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    temp = []
    nbOccurrence
    for i in list:
        if i not in temp:
            if list.count(i) >nbOccurence:
                nbOccurence = list.count(i)
                element = list[i]
                temp.append(i)
    del temp
    del nbOccurence
    avec ca tu devrais t'en sortir, il te faut le modifier quelque peu pour traiter conséquence les elements apparus un même nombre de fois.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2003
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    le count() va poser problème, puisque si on reprend l'exemple que j'ai donné, si on ajoute la valeur 10 par exemple, alors il va compter un 0 supplémentaire, celui du 10.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Points : 923
    Points
    923
    Par défaut
    Citation Envoyé par Difool
    il va compter un 0 supplémentaire, celui du 10
    Comment ça?

    Ce que j'aurais à proposer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> liste = [0, -1, 0, 1, 0, 0]
    >>> tmp = map(liste.count, liste)
    >>> liste[tmp.index(max(tmp))]
    0

  5. #5
    Membre actif
    Avatar de Wormus
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 276
    Points
    276
    Par défaut
    Non la méthode count() compte le nombre d'occurence dans la liste du nombre qui lui est passé en paramètre !

    c a d si on fait : list.count(0) on va obtenir le nombre de 0 dans list !!! le nombre 10 c'est pas comme si il y avait la valeur 1 et la valeur 0 dans la liste !! ---> c'est la valeur 10


    edit : le post de oiffrig n'y était pas qd j'ai commencé à écrire mon post donc je l'avais pas vu !! et je le trouve plus interressant (surtout que je me souvenais plus de la fonction map qui est très pratique pourtant donc merci oiffrig )

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2003
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Wormus
    Non la méthode count() compte le nombre d'occurence dans la liste du nombre qui lui est passé en paramètre !

    c a d si on fait : list.count(0) on va obtenir le nombre de 0 dans list !!! le nombre 10 c'est pas comme si il y avait la valeur 1 et la valeur 0 dans la liste !! ---> c'est la valeur 10
    Ah ok, j'ai cru voir ça dans un bouquin.
    Donc j'essaie la méthode de oiffrig et je vous dis quoi
    Merci à vous 3

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2003
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    La solution de oiffrig fonctionne à merveille, encore merci.
    Le problème est donc RESOLU

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

Discussions similaires

  1. Réponses: 22
    Dernier message: 13/09/2013, 14h20
  2. Formulaire qui modifie une valeur d'une liste
    Par lesanglier dans le forum SharePoint
    Réponses: 2
    Dernier message: 23/10/2009, 15h42
  3. quand je selectionne une valeur dans une liste, retourne une autre valeur
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/12/2008, 14h23
  4. Case à cocher qui sélectionne toutes valeurs d'une liste
    Par athos7776 dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/07/2007, 20h09
  5. Réponses: 8
    Dernier message: 24/10/2006, 16h50

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