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 :

Supprimer une liste d'une autre liste


Sujet :

Python

  1. #1
    Membre habitué Avatar de Linterne
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 142
    Points : 164
    Points
    164
    Par défaut Supprimer une liste d'une autre liste
    Bonjour,

    J'ai deux listes déclarées comme suit:

    La deuxième est composé de différents éléments compris dans cette liste, par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Liste2=[[13], [15], [33], [77], [121], [125], [463], [482], [490], [694], [695]]
    Je voudrais supprimer dans la première liste les éléments présents dans la seconde liste.

    J'ai essayé avec "remove":

    Mais j'ai le message d'erreur suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ValueError: list.remove(x): x not in list
    Je ne sais pas si le problème vient d'une mauvaise syntaxe dans l'utilisation de la fonction remove ou d'une mauvaise déclaration des listes.

    Merci d'avance pour vos suggestions !
    Tchouri vue par Gaia

  2. #2
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2012
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2012
    Messages : 321
    Points : 604
    Points
    604
    Par défaut
    Bonjour,

    vous pouvez itérer sur votre liste deux et appliquer la méthode remove avec l'itérateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for elem in Liste2:
        Liste1.remove(elem)
    Cela devrait fonctionner.

    Avec votre commande initiale, vous essayez de supprimer un objet liste de votre liste1, ce qui n'est pas votre objectif, et étant donné que votre liste1 ne contient que des entiers.... vous avez cette value error

  3. #3
    Membre habitué Avatar de Linterne
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 142
    Points : 164
    Points
    164
    Par défaut
    Merci pour votre réponse, malheureusement, toujours la même erreur !
    Tchouri vue par Gaia

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Linterne Voir le message
    Merci pour votre réponse, malheureusement, toujours la même erreur !
    Il faut commencer par jouer avec la console Python:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> L = [ [x] for x in range(10) ]
    >>> L
    [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9]]
    >>> L.remove([2])
    >>> L
    [[0], [1], [3], [4], [5], [6], [7], [8], [9]]
    >>>
    puis vous compliquez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> for x in [3, 4, 5]:
    ...     L.remove ([x])
    ...
    >>> L
    [[0], [1], [6], [7], [8], [9]]
    >>>
    La console Python vous donnera des réponses bien plus rapidement qu'un forum de discussion.

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

  5. #5
    Membre habitué Avatar de Linterne
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 142
    Points : 164
    Points
    164
    Par défaut
    Problème résolu en utilisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	for elem in Liste2:
    		Liste1.remove(elem[0])
    Merci pour votre aide.
    Tchouri vue par Gaia

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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