A voir également:
- Python supprimer doublon liste
- Liste déroulante excel - Guide
- Supprimer doublon excel - Guide
- Supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Liste déroulante en cascade - Guide
6 réponses
voici une solution
my (%saw,@out)=();
undef %saw;
@out = sort(grep(!$saw{$_}++, @stock));
le tableau @out possède la liste sans les doublons.
my (%saw,@out)=();
undef %saw;
@out = sort(grep(!$saw{$_}++, @stock));
le tableau @out possède la liste sans les doublons.
Bobinours
Messages postés
2898
Date d'inscription
jeudi 26 avril 2001
Statut
Membre
Dernière intervention
21 mars 2013
504
7 févr. 2003 à 18:46
7 févr. 2003 à 18:46
J'ai eu la même idée que sebsauvage, utiliser un tableau de HASH.
my %h_senders;
boucle sur les elements (condition) { # A toi de la definir
$h_senders[$elem]++;
}
Au passage, ça te permet de connaitre le nombre d'occurence de l'élément (grace à l'incrémentation).
Donc si tu affiches :
print $h_senders["je.suppose@que.cesont.des.email"];
Ca t'affichera le nombre de fois que l'email "je.suppose@que.cesont.des.email" est trouvé.
my %h_senders;
boucle sur les elements (condition) { # A toi de la definir
$h_senders[$elem]++;
}
Au passage, ça te permet de connaitre le nombre d'occurence de l'élément (grace à l'incrémentation).
Donc si tu affiches :
print $h_senders["je.suppose@que.cesont.des.email"];
Ca t'affichera le nombre de fois que l'email "je.suppose@que.cesont.des.email" est trouvé.
J'espère qu'il a trouvé sa solution depuis le temps ^^,
mais en gros l'idée (en perl) c'est d'utiliser les tableau de hash.
il faut entré les valeurs souhaité en tant que clefs et compter le nombre d'occurrence de chaque clef (le nombre de fois où elle apparait dans la liste initiale). En perl un tableau de hash ne peut posséder qu'une seule valeur de clef par tableau (pas de doublon en somme) ce qui règle le problème.
Voilou, je pense que c'est ce qui est proposé dans le dernier poste (ça fait un moment que j'ai pas touché du perl) mais c'est sur cette voie qu'il faut chercher.
cdlt.
Nicolas
mais en gros l'idée (en perl) c'est d'utiliser les tableau de hash.
il faut entré les valeurs souhaité en tant que clefs et compter le nombre d'occurrence de chaque clef (le nombre de fois où elle apparait dans la liste initiale). En perl un tableau de hash ne peut posséder qu'une seule valeur de clef par tableau (pas de doublon en somme) ce qui règle le problème.
Voilou, je pense que c'est ce qui est proposé dans le dernier poste (ça fait un moment que j'ai pas touché du perl) mais c'est sur cette voie qu'il faut chercher.
cdlt.
Nicolas
Hey!!!!
Vous allez tout de meme pas me dire que mon code est hyper optimisé???? ;-)
Si vous ne connaissez pas PERL, c'est pas grave, écrivez moi dans le langage que vous connaissez le mieux ou en pseudo code voir simplement en français ce que vous feriez pour améliorer mon code (je me chargerai de le transformer en PERL)
J'attend vos suggestions avec impatience mci :)
Vous allez tout de meme pas me dire que mon code est hyper optimisé???? ;-)
Si vous ne connaissez pas PERL, c'est pas grave, écrivez moi dans le langage que vous connaissez le mieux ou en pseudo code voir simplement en français ce que vous feriez pour améliorer mon code (je me chargerai de le transformer en PERL)
J'attend vos suggestions avec impatience mci :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
7 févr. 2003 à 13:04
7 févr. 2003 à 13:04
Et pourquoi pas placer tes chaînes dans une table de hashage ?
ça permet d'éliminer très facilement les doublons.
(Je ne me rappelle plus de la syntaxe en perl.)
ça permet d'éliminer très facilement les doublons.
(Je ne me rappelle plus de la syntaxe en perl.)
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
7 févr. 2003 à 15:30
7 févr. 2003 à 15:30
Pour donner l'exemple en Python, un programme qui prend un fichier A.txt, retire les doublons, trie et écrit le résultat dans B.txt (je vous la joue version compacte):
items = dict( [ (line,0) for line in open('A.txt','rb').read().split('\n')] ).keys()
items.sort()
open('B.txt','w+b').write('\n'.join(items))
C'est pas beau, ça, hum ? Trois petites lines de code ?
(Bon je suis d'accord question lisibilité c'est pas terrible si on connaît pas Python :)
items = dict( [ (line,0) for line in open('A.txt','rb').read().split('\n')] ).keys()
items.sort()
open('B.txt','w+b').write('\n'.join(items))
C'est pas beau, ça, hum ? Trois petites lines de code ?
(Bon je suis d'accord question lisibilité c'est pas terrible si on connaît pas Python :)