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 :

comment savoir à quelle liste appartient une valeur?


Sujet :

Python

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut comment savoir à quelle liste appartient une valeur?
    Bonjour à tous,

    je suis débutant python depuis 2 semaines... j'avance grâce notamment aux tutos de ce sites.

    Mais voilà mon petit problème,

    Soit 2 listes :

    equipe_1 = ["jean", "pierre", "paul", "jacques"]
    equipe_2 = ["rené", "germain", "robert", "charles"]

    Un joueur est appelé, au hazard robert, comment savoir à quelle équipe il appartient ?

    la solution est surement bête mais je me suis retourné le cerveau... à force de chercher.

    merci pour votre aide...

  2. #2
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Salut

    Il y a un opérateur dédié au test de "contenance". Il s'agit de in, comme démontré par cet exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> equipe1 = ["Rene", "Michel", "Jean-Jacques"]
    >>> "Michel" in equipe1
    True
    >>> "Jojo" in equipe1
    False

  3. #3
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 824
    Points : 7 120
    Points
    7 120
    Par défaut
    avec des conditions if...else tu devrais t'en sortir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if "jean" in equipe_1: # si jean est dans ta liste
        print "jean est en equipe 1"
    else : # si pas de jean dans la liste
        print "il est pas dans equipe 1"
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Une méthode un peu bizarre mais très concise:

    On tient compte du fait que:

    int(False) => 0
    int(True) => 1

    Cela permet d'utiliser le résultat de la condition comme index pour choisir entre les 2 résultats: équipe 1 ou équipe 2.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print u"le joueur:", joueur, u"est dans l'équipe:", [2,1][int(joueur in equipe_1)]
    appliqué à joueur="pierre" donne: "le joueur: pierre est dans l'équipe: 1"
    appliqué à joueur="robert" donne: "le joueur: robert est dans l'équipe: 2"

    Tyrtamos

    Edit: bien entendu, cela suppose que le joueur en question est soit dans l'équipe 1 soit dans la 2. S'il pouvait être dans aucune équipe ou dans les 2 équipes en même temps, il faudrait modifier la formule.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Un grand merci pour vos réponses !

    Effectivement, ça coule de source... une fois que l'on connait.

    Longue vie à ce site et aux forums !

    @tyrtamos: même si je vais suivre la méthode de Fred et Antoine, je vais étudier ça c'est promis

  6. #6
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print u"le joueur:", joueur, u"est dans l'équipe:", [2,1][int(joueur in equipe_1)]
    Original comme solution

    Il reste l'option de la ternaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "Le joueur est dans l'équipe ", (1 if joueur in equipe1 else 2)

  7. #7
    Membre éclairé
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Points : 751
    Points
    751
    Par défaut
    Citation Envoyé par Antoine_935 Voir le message
    Il reste l'option de la ternaire
    ou le and or trick :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    joueur = "pierre"
     print "le joueur %s est dans l'équipe : %s" % (joueur, joueur in equipe_1 and 1 or 2)
    histoire de rajouter mon grain de sel...

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    mdr

    en tout cas je n'ai que l'embarras du choix

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

Discussions similaires

  1. [Free Pascal] Comment savoir quelle ligne du programme est la cause d'une erreur à l'exécution
    Par NOVICE76 dans le forum Free Pascal
    Réponses: 5
    Dernier message: 04/09/2014, 20h46
  2. Réponses: 3
    Dernier message: 08/02/2013, 13h32
  3. Comment tester la présence d'une valeur dans une liste?
    Par jeo13 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/06/2008, 16h09
  4. comment savoir le type d'une liste déroulante (DropDownList en asp)
    Par shirya dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/03/2007, 16h41
  5. Comment savoir quelle version d'MSXML IE utilise?
    Par trent94 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 17/07/2005, 18h38

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