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 2 list (array)


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 38
    Points : 28
    Points
    28
    Par défaut Comparer 2 list (array)
    salut,
    j'ai deux array, je doit les comparer pour retourner true or false

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    inc = [['A', 'B'], ['C', 'D'], ['E', 'F'], ['G', 'H']]
    te = ['B', 'D', 'F', 'C', 'Y']
    True : si 2 valeur de te existe dans inc example ['C', 'D']
    False : si 1 ou pas de valeur ['A', 'C', 'E', 'G', 'Y']

    Merci pour votre aide

    Voici mon Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    from itertools import chain
     
    inc = [['A', 'B'], ['C', 'D'], ['E', 'F'], ['G', 'H']]
    te = ['A', 'C', 'E', 'G', 'Y']
     
    #intersection pour enleve le Y
    te = set(chain.from_iterable(te)).intersection(set(chain.from_iterable(inc)))
     
    def flatten(target):
        return_list = list()
        for element in target:
            if isinstance(element,list):
                return_list.extend(flatten(element))
            else:
                return_list.append(element)
        return return_list
     
     
    set_inc = set(flatten(inc))
    set_te = set(te)
     
    print(set_te.issubset(set_inc)) # True ou False

  2. #2
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Tu veux dire qu'il faut que chaque sous liste de inc retrouve ses deux éléments dans te ?

    Dans ce cas, au plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    >>> inc = [['A', 'B'], ['C', 'D'], ['E', 'F'], ['G', 'H']]
    >>> te = ['B', 'D', 'F', 'C', 'Y']
    >>> for i, j in inc:
    ...     if i in te and j in te:
    ...             print '[%s, %s] in te' %(i, j)
    ...     else:
    ...             print '[%s, %s] not in te' %(i, j)
    ... 
    [A, B] not in te
    [C, D] in te
    [E, F] not in te
    [G, H] not in te
    >>>

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 38
    Points : 28
    Points
    28
    Par défaut
    Merci Bcp,

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

Discussions similaires

  1. Comparer deux listes
    Par timtim2007 dans le forum Prolog
    Réponses: 7
    Dernier message: 07/06/2019, 09h02
  2. comparer une liste de valeur
    Par jfcb92 dans le forum Excel
    Réponses: 4
    Dernier message: 14/11/2007, 08h36
  3. Comparer x listes de x serveurs
    Par MaitrePylos dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2007, 09h58
  4. [C# 2.0] Comparer deux listes
    Par Rodie dans le forum Windows Forms
    Réponses: 4
    Dernier message: 01/08/2006, 00h40
  5. Comparer des listes de prix
    Par denisfavre dans le forum Access
    Réponses: 8
    Dernier message: 08/11/2005, 20h11

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