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 les éléments qui apparaissent plusieurs fois dans une liste


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Rien en rapport pour le moment
    Inscrit en
    Mars 2021
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Rien en rapport pour le moment

    Informations forums :
    Inscription : Mars 2021
    Messages : 33
    Par défaut supprimer les éléments qui apparaissent plusieurs fois dans une liste
    Bonjour, j’ai ici une liste générée par sa définition, qui enfaite me donne toute les combinaisons d’écriture possible d’un mot fourni. Le problème est que la s’effectue une factorielle, donc le mot en question est plusieurs fois sortit. J’aimerais que vous m’aidiez pour que la liste sois purgé de tout les éléments inutile , mais que il garde a chaque fois seulement le premier élément trouver à la même place et supprime tout les doublons qui existe dans la liste à la suite . Merci d’avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    word=‘pit’
    list1=[[item] for item in set(''.join(x) for x in itertools.permutations(word))]
    print(list1)
    Voici le résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [['tpi'], ['ipt'], ['itp'], ['pit'], ['itp'], ['pti'], ['pit'], ['tip'], ['pit'], ['tip'], ['pti'], ['itp'], ['pti'], ['tip'], ['tpi'], ['itp'], ['ipt'], ['pit'], ['ipt'], ['tpi'], ['tip'], ['tpi'], ['pti'], ['ipt']]
    tpi reviens quatre fois , j’aimerais gardé seulement celui a l’index[0]
    ipt reviens 4 fois, j’aimerais gardé seulement celui a l’index[1]
    Etc..

  2. #2
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Et tu as fait quoi comme essai ? Parce que c'est assez basique en somme.

  3. #3
    Membre averti
    Homme Profil pro
    Rien en rapport pour le moment
    Inscrit en
    Mars 2021
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Rien en rapport pour le moment

    Informations forums :
    Inscription : Mars 2021
    Messages : 33
    Par défaut
    Et bien enfaite je me suis un peu creusé la tete et l’idee que j’ai eu est de faire une boucle ‘for W in list1:’,avec une liste WX[] =[]
    Et qui rajouterais une liste dans WX si W n’est pas trouvé dans les liste deja présente dans WX.
    Et rajouter W dans la liste similaire si il y en a deja une . Mais je me suis pose la question après comment fournir les index qui vont avec chaque mot dans chaque liste et je n’ai pas d’idée il me semble.
    Je me suis dit via une boucle ´while k<len(WX):’
    Et puis il faudrait donc pendant cette condition parcourir WX (j’avais choisi une boucle for)et vérifier si il y a une similarité . Enfin bref je suis pas sur de moi sur ce coup la ,ca fait plusieurs années que j’ai pas touché un bout de code, je me lance assez à l’arrache sans prendre les court à zero avec ce qu’il entre-reste dans mon cerveau .
    Je fourni ici le code que j’ai commencé mais je ne l'imagine pas trop servir

    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
    for W in list1:
        if len(WX) == 0:
            WX.append([])
            WX[0]+=2
            print(WX)
        print("WX[0] = ",WX[0])
     
        while k < len(WX):
            for k2 in WX:
                print("k2[",k,"]",":",k2)
            if k2 == WX[k[0]]:
                WX[k].append(1)
            k+=1
     
         print(W)
         WW+=1

  4. #4
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Déjà, je n'ai pas la même chose que toi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import itertools
     
    word='pit'
    list1=[[item] for item in set(''.join(x) for x in itertools.permutations(word))]
    print(list1)
    donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [['pti'], ['ipt'], ['itp'], ['tip'], ['pit'], ['tpi']]
    Tu noteras le code mis entre balises #
    Sinon, i y a enumerate qui permet d'avoir accès non seulement à l'élément mais en plus à l'index.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i,el in enumerate(list1):
        print(i, ' -> ', el)
    Cela donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    0  ->  ['pti']
    1  ->  ['ipt']
    2  ->  ['itp']
    3  ->  ['tip']
    4  ->  ['pit']
    5  ->  ['tpi']

  5. #5
    Membre averti
    Homme Profil pro
    Rien en rapport pour le moment
    Inscrit en
    Mars 2021
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Rien en rapport pour le moment

    Informations forums :
    Inscription : Mars 2021
    Messages : 33
    Par défaut
    Ahah d’accord c’est min ide il pete un plomb mdr, je viens de copier seulement ce que je vous ai transmis dans un nouveau doc et il me le sort que une fois effectivement , ou 2 ;j’imagine que c’est a cause du bouton play que je dois spam pour exécuter ca fonctionne jamais en 1/2 click 🙄.Et je sait pas pourquoi l’autre fichier avec la totalité du code que j’ai commencé me le sort à tout les coups en 4 fois c’est bizarre
    Enfin je viens d’essayer dans un autre ide et ca marche comme il faut je continuerais avec celui-là .
    Merci pour enumerate j’en prend note ✍🏽😁
    Et pour set j’ai fait des recherches j’ai pas trouver ce qui pouvait m’y aider je verrais à l’avenir ca à l’air assez compliqué. Merci beaucoup en tout cas bonne continuation !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for test in II:
    print(«*jeeu*»)

  6. #6
    Membre averti
    Homme Profil pro
    Rien en rapport pour le moment
    Inscrit en
    Mars 2021
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Rien en rapport pour le moment

    Informations forums :
    Inscription : Mars 2021
    Messages : 33
    Par défaut
    Hmm j’ai pas compris pour les balise , je pensait vous le demander juste avant que tu en parles

Discussions similaires

  1. Afficher que les champs qui apparaissent plusieurs fois
    Par sam01 dans le forum Langage SQL
    Réponses: 13
    Dernier message: 09/02/2021, 11h24
  2. Présence d'un élément plusieurs fois dans une liste
    Par Medzfall dans le forum Général Java
    Réponses: 2
    Dernier message: 22/11/2019, 08h33
  3. [V10] Champ qui accepte plusieurs valeurs dans une liste de valeurs
    Par lamazze dans le forum Odoo (ex-OpenERP)
    Réponses: 0
    Dernier message: 24/01/2019, 18h08
  4. Réponses: 9
    Dernier message: 25/09/2017, 11h55
  5. supprimer les fichiers qui ne sont pas dans une liste
    Par jeorcal dans le forum Langage
    Réponses: 7
    Dernier message: 15/01/2011, 10h03

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