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

  1. #1
    Membre régulier
    problème verification tout les element d'une liste existe dans une autre
    salut,

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    check = all(item in all_migratory for item in solutionforpriority)
               if check:
                    print("yes the MT towoard target solution ", solutionforpriority, " has all item of allMT",
                          all_migratory)


    pour solutionforpriority[4] et all_migratory:[9], [17], [4]
    resultat:
    yes the MT towoard target solution [4] has all item of allMT [[9], [17], [4]]
    resultat erroné

  2. #2
    Expert éminent sénior
    Salut,

    Pourquoi ne pas essayer de faire çà avec une boucle, "all" est éventuellement une optimisation à voir plus tard.

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

  3. #3
    Expert éminent
    Bonjour,

    On devrait pouvoir faire ça aussi avec set(). Exemple:

    a = set([1,2,3])
    b = set([3,4,5])
    print(a & b)
    [3]

    Si les listes sont de taille inégale => si le résultat est égal à la plus petite des listes, c'est que celle-ci est contenue intégralement dans l'autre.

    A noter tout de même que la conversion avec set annule les éventuels doublons.
    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

  4. #4
    Expert éminent sénior
    Citation Envoyé par tyrtamos Voir le message
    On devrait pouvoir faire ça aussi avec set().
    Ce qui suppose des types hashables (des tuples et non listes).

    De toutes façons, le code posté est correct.
    Mais ce n'est que ce n'est pas ce résultat qui est attendu, un peu comme si on cherchait à savoir si A est dans B mais qu'on code est-ce que B est dans A.

    Quand on sait pas ce qu'on veut et qu'on code n'importe quoi, pas la peine d'optimiser: une écriture simple qui permet d'ajouter des "print" pour vérifier que...

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

  5. #5
    Membre régulier
    Même si je fais les structures en inverse, il y a toujours des problème de ce type:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    check = all(item in solutionforpriority for item in all_migratory)
               if check:
                    print("yes the MT towoard target solution ", solutionforpriority, " has all item of allMT",
                          all_migratory)

  6. #6
    Expert éminent sénior
    Salut,

    Citation Envoyé par FATENMRABET Voir le message
    même si je fait les structures en inverse y a toujours des problème de ce types
    Vous faites un peu ce que vous voulez, c'est d'abord un problème de conception (je n'obtiens pas ce que je veux)... Et comme on ne sait pas trop ce que vous voulez obtenir...

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

  7. #7
    Membre régulier
    je peux utiliser subset pour verifier ça
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    def aplatliste(L):
        """transforme un arbre (liste de listes...) en une liste à 1 seul niveau
        """
        R = []
        for elem in L:
            if isinstance(elem, (list, tuple)):
                R.extend(aplatliste(elem))
            else:
                R.append(elem)
        return R
    check=set(L1).issuperset(set(aplatliste(L2)))

    L1=[12, 12, 12, 11, 11]
    L2= [[12], [11]]

  8. #8
    Expert éminent sénior
    Citation Envoyé par FATENMRABET Voir le message
    je peux utiliser subset pour verifier ça
    Super, alors le sujet est a marquer

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

###raw>template_hook.ano_emploi###