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 :

remove exclusif sur une liste spécifique


Sujet :

Python

  1. #1
    Membre régulier
    remove exclusif sur une liste spécifique
    Bonjour,
    je veux faire un remove ciblé sur une structure bien déterminé mais elle est faite sur toute la structure ,
    ayant une liste L1: [(2, [15, True, 35]), (3, [15, True, 54]), (4, [15, False, 109]), (2, [11, True, 26]), (3, [11, True, 13]), (4, [11, False, 58])]
    et une liste L2: [(15, [2, 3, 4]), (11, [3, 2, 4])]
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        for i in  L1:
            if i[1][1] == False:
                print("the MT", i[1][0], "coulden't be scheduled on target ", i[0])
                for j in L2:
                    if j[0]==i[1][0]:
                        if j[1] != []:
                            j[1].remove(i[0])
                print("L2", L2)

    Lors du remove normalement on obtient progressivement pour 15[(15, [2, 3,]), (11, [3, 2,4])]
    puis pour 11 [(15, [2, 3]), (11, [3, 2])]
    alors que le 4 est retranché directement dés le début des 2 structure [(15, [2, 3, ]), (11, [3, 2])]
    et dans la deuxième itération il déclare qu'il : ValueError: list.remove(x): x not in list (c'est à dire puisque dès la première itération le 4 de la liste (11, [3, 2,4]) a été supprimé (11, [3, 2]) donc lorsque il cherche à le supprimer il ne trouve pas)

  2. #2
    Expert éminent sénior
    Salut,
    Citation Envoyé par FATENMRABET Voir le message
    ValueError: list.remove(x): x not in list
    Commencer par faire un print de la liste et du x à y oter...

    Pour le reste, relisez vous et essayez de vous mettre à la place de ceux qui pourraient essayer de comprendre ce que vous racontez.

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

  3. #3
    Membre régulier
    Citation Envoyé par wiztricks Voir le message
    Salut,


    Commencer par faire un print de la liste et du x à y oter...

    Pour le reste, relisez vous et essayez de vous mettre à la place de ceux qui pourraient essayer de comprendre ce que vous racontez.

    - W
    salut,
    c'est quoi le non clair? je pense j'ai bien formulé cette fois

  4. #4
    Expert éminent sénior
    Citation Envoyé par FATENMRABET Voir le message
    je pense j'ai bien formulé cette fois
    Vous avez ajouté:
    (c'est à dire puisque dès la première itération le 4 de la liste (11, [3, 2,4]) a été supprimé (11, [3, 2,4]) donc lorsque il cherche à le supprimer il ne trouve pas)
    la question est pourquoi supprimer ce qui n'est pas ou plus là? Au pire try....except est là pour çà non?

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

  5. #5
    Membre régulier
    Citation Envoyé par wiztricks Voir le message
    Vous avez ajouté:

    la question est pourquoi supprimer ce qui n'est pas ou plus là? Au pire try....except est là pour çà non?

    - W
    la question est pourquoi le remove supprime de toute les liste alors que je la cible par le if j[0] == i[1][0]:

  6. #6
    Expert éminent sénior
    Citation Envoyé par FATENMRABET Voir le message
    la question est pourquoi le remove supprime de toute les liste alors que je la cible par le if j[0] == i[1][0]:
    Parce que vous appliquez le .remove à tous les éléments de la liste.
    Pourquoi? A vous de le dire puisque vous avez écrit ce code.

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

  7. #7
    Membre régulier
    Citation Envoyé par wiztricks Voir le message
    Parce que vous appliquez le .remove à tous les éléments de la liste.
    Pourquoi? A vous de le dire puisque vous avez écrit ce code.

    - W
    oui vous avez raison: au lieu de remove j'ai utiliser le del et ça fonctionne bien
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    del (somrt[1])[somrt[1].index(pt[0])]

###raw>template_hook.ano_emploi###