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 :

Comparer element d'une liste


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 257
    Par défaut Comparer element d'une liste
    Bonsoir

    Je viens ici pour vous demander de l'aide :

    en fait, j'ai une liste du type :

    L1=["A","B","C","D","E"]
    Et j'ai une autre liste du type :
    L2=[("A","B"),("A","C"), ("B","E") ...] qui signifie en quelque sorte A touche B, A touche C etc ...

    et je souhaiterai comparer chaque paire d'element de ma liste L1, afin de voir s'ils se touchent ..
    Par exemple, comparer :
    A,B
    A,C
    A,D
    A,E
    ....

    Comment pourrais je faire ???

    D'avance merci pour votre aide ...

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    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 738
    Par défaut
    Citation Envoyé par Isabella83 Voir le message
    en fait, j'ai une liste du type :
    L1=["A","B","C","D","E"]
    Sur une feuille blanche placez les points a', 'b', 'c', 'd', 'e'
    Et j'ai une autre liste du type :
    L2=[("A","B"),("A","C"), ("B","E") ...] qui signifie en quelque sorte A touche B, A touche C etc ...
    Ce sont des arcs orientés de a vers b, a vers c
    et je souhaiterai comparer chaque paire d'élément de ma liste L1, afin de voir s'ils se touchent ..
    Par exemple, comparer :
    A,B
    A,C
    A,D
    A,E
    ....
    Une sorte de fonction arc_exists(a, b) qui retourne True/False...

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def arc_exists(li, s):
        return lambda d: len([ c for c in li if c[0] == s and c[1] == d])
     
    L2=[("A","B"),("A","C"), ("B","E")]
    arc_exists_from_A = arc_exists(L2, "A")
    print "A->C = %s" % arc_exists_from_A("C")
    print "A->X = %s" % arc_exists_from_A("X")

    -W
    PS: Il y a moins de choses à dire qu'hier donc pas la peine de traîner
    notez la construction du lambda...
    Pour l'aspirine: soit une fonction f à deux variables (x, y). on veut créer une fonction fx0 (y) qui soit f(x0, y) (on fixe x = x0)

    arc_exists utilise cela... et pour extraire la compréhension de liste, prendre par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def add(x):
        return lambda y: x + y
    et jouez avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    add2 = add(2)
    print add2(3)
    Je ne commenterai pas la compréhension de liste, je suis sûr qu'on vous aura proposé mieux avant que vous ayez compris.
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 257
    Par défaut
    merci pour votre reponse, mais au lieu de retourner False/True, j'aimerai incrementer un compteur ... Je peux avec votre methode ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    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 738
    Par défaut
    Ben vous voulez comptez quoi?
    -W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    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 738
    Par défaut
    Ben vous voulez comptez quoi?
    -W
    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    # liste des arcs qui commencent par s
    arcs_from = lambda li, s: [ c for c in li if c[0] == s ]
    def arc_exists(li, s):
        return lambda d: len([ c for c in arcs_from(li, s) if  c[1] == d])
     
    ###
    L2=[("A","B"),("A","C"), ("B","E")]
    arc_exists_from_A = arc_exists(L2, "A")
    print "A->C = %s" % arc_exists_from_A("C")
    print "A->X = %s" % arc_exists_from_A("X")
     
    print "ARC count", len(arcs_from(L2, "A"))
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [langage] Supprimer un élément dans une liste
    Par myjuna dans le forum Langage
    Réponses: 15
    Dernier message: 06/08/2014, 11h49
  2. cacher un element d'une liste deroulante
    Par fallered dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 18/10/2005, 15h46
  3. Recherche Element dans une liste
    Par hellodelu dans le forum ASP
    Réponses: 7
    Dernier message: 19/08/2005, 10h56
  4. acceder au n iéme element d'une liste std::list
    Par sorari dans le forum SL & STL
    Réponses: 4
    Dernier message: 23/03/2005, 15h21
  5. selectionner le dernier element d'une liste box
    Par adilou1981 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/03/2005, 10h19

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