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

Langage Perl Discussion :

Suppression de doublons dans un tableau


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 46
    Points : 15
    Points
    15
    Par défaut Suppression de doublons dans un tableau
    Bonjour a tous, je sais que cette question a déjà été posé mais je n'arrive pas appliquer les differentes ressources sur Google ou sur Developpez.com

    Est -ce que quelq'un peut m'aider?
    J'enregistre un fichier dans un tableau et je veux supprimer tout les mots identiques (doublons) présents à l'interieur avant de faire un traitement sur chaque mot.
    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
     
    #Fonction pour supprimer les doublons d'un fichier
    sub doublons_grep {
      my %hash_sans_doublon;   
      return grep {! $hash_sans_doublon{$_}++ }@_;
    }
     
    #------------------------------------------------------------
    #------Programme Principal
    #------------------------------------------------------------
    my @tab;						
    my $MaxFile = 3;						
    for (my $NumFile=1;$NumFile<=$MaxFile;$NumFile++)
    {
        my @temp = Ouvrir_Fichier("File".$NumFile.".txt");			 
        my @lignes_fichierCompare = doublons_grep(@temp);
                 ##########
    	#TRAITEMENT
                 ##########
    }
    Merci de vos lumieres!

  2. #2
    Membre confirmé Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 570
    Points
    570
    Par défaut
    On peut sûrement faire plus court.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    my @words = qw(un deux trois deux quatre);
    my %h = map { $_, 0} @words;
    @words = keys %h;

  3. #3
    Membre confirmé Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 570
    Points
    570
    Par défaut
    En fait, je préfère ta solution : elle préserve l'ordre.

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    non, je pense pas que l'ordre sera toujours gardé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    my %unique;
    @words = grep {! $unique{$_}++ } @words;

  5. #5
    Membre confirmé Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 570
    Points
    570
    Par défaut
    J'aurais cru que la solution avec le grep (la tienne et la sienne sont identiques n'est-ce pas ?) conservait l'ordre. La mienne non bien entendu, c'est pour cela que sa solution me paraissait meilleur. Je me trompe ?

    Mais on ne sait toujours pas quel est le problème, puisqu'il a avait déjà une solution.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Salut tout le monde merci pour vos infos mais quelqu'un peut répondre à mon problème

    Merci

  7. #7
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Citation Envoyé par Didi34
    J'enregistre un fichier dans un tableau et je veux supprimer tout les mots identiques (doublons) présents à l'interieur avant de faire un traitement sur chaque mot.
    Comme l'a fait remarquer Iblis
    Citation Envoyé par iblis
    Mais on ne sait toujours pas quel est le problème, puisqu'il a avait déjà une solution.
    Salut tout le monde merci pour vos infos mais quelqu'un peut répondre à mon problème
    Pourrais-tu le redéfinir clairement étant donné que les solutions apportées ne semblent pas te convenir?
    -- Jasmine --

Discussions similaires

  1. Suppression des doublons dans un tableau de caractères
    Par benjamin_malaussene dans le forum Débuter
    Réponses: 20
    Dernier message: 03/11/2014, 13h12
  2. Suppression des doublons dans un tableau des chaines
    Par rimenis dans le forum Langage
    Réponses: 3
    Dernier message: 22/02/2013, 12h26
  3. Suppression de doublon dans un tableau d'objet javascript
    Par hepard dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 24/06/2012, 21h13
  4. [Tableaux] suppression des doublons dans un tableau
    Par hammag dans le forum Langage
    Réponses: 3
    Dernier message: 17/06/2009, 19h13
  5. Réponses: 2
    Dernier message: 16/06/2009, 10h44

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