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 :

Concaténation de tableaux sans doublons


Sujet :

Langage Perl

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Concaténation de tableaux sans doublons
    Bonjour,

    Comme j'ai posté dans le sujet suivant (mais on m'a conseillé à juste titre d'en créer un nouveau) : http://www.developpez.net/forums/d35...tion-tableaux/

    J'ai un tableau qui contient des dates du genre
    $tDates1[0] = "2008/11/15 00:10:00"
    et un second qui contient des dates également
    $tDates2[0] = "2008/11/15 00:10:00"

    Je veux que @tDates1 contiennent les dates à la fois de @tDates1 et @tDates2.
    Lorsque je fais @tDates1 = (@tDates1 , @tDates2), les dates sont bien concaténées mais ils y a pleins de doublons du genre :
    $tDates1[0] = "2008/11/15 00:10:00" et $tDates1[1] = "2008/11/15 00:10:00";
    Je voudrais que @tDates1 ne récupère que les dates de @tDates2 qu'il ne possède pas déjà.

    P.S.: à noter que les performances sont très importantes, donc je ne veux pas faire des boucles imbriquées....

    Merci.

  2. #2
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # hash : clé unique
    my %hash;
     
    # mise des données dans le hash afin d'éviter les doublons
    map{$hash{$_}=1}@tDates1 ;
    map{$hash{$_}=1}@tDates2;
     
    # replacement des données dans le tableau
    @tDates1 = keys(%hash);
    Tu peux utiliser un hash.

    Sinon il existe aussi le module List::Compare
    -- Jasmine --

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Ok merci pour ta réponse, j'avais finalement trouvé quelque chose de similaire.

    @tDates1 = (@tDates1 , @tDates2);
    my %hDates_tmp;
    map{ $hDates_tmp{$_}=1 } @tDates1;
    @tDates1 = sort keys %hDates_tmp;

    Faut voir quelle solution est la plus performante.

Discussions similaires

  1. [Tableaux] Combinaisons sans doublons
    Par wam_baloo dans le forum Langage
    Réponses: 1
    Dernier message: 20/02/2008, 09h23
  2. [Tableaux] Fusion & Tri Sans Doublons
    Par pouillou dans le forum Langage
    Réponses: 3
    Dernier message: 20/03/2006, 11h03
  3. [Postgresql] insertion sans doublon
    Par Pwill dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 08/06/2005, 11h37
  4. Comment mettre à jour une ligne sans doublon via déclencheur
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/08/2004, 15h56
  5. Réponses: 6
    Dernier message: 27/05/2004, 10h41

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