Trouver si un terme est dans une liste

Résolu/Fermé
nanou2183 Messages postés 46 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 15 juin 2010 - 2 mars 2007 à 11:09
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 2 mars 2007 à 18:35
salut,
alors j'ai une liste de mots et je voudrais comparer des données avec cette liste
pour trouver
si datas[0] est dans la liste alors ...
voilà mon code
@mot=();
foreach(@mot){
if ($mot==$datas[0])
{print "coucou";}
else{@mot=$datas[0];
print "@mot";}}

7 réponses

blux Messages postés 26013 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
2 mars 2007 à 11:17
Salut,

on suppose que c'est du Perl...

Je ne comprends pas ton souci...

Tu réinitialise @mot et ensuite tu le remplis en cherchant si ça existe déjà... Quel est le problème ?
0
nanou2183 Messages postés 46 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 15 juin 2010 11
2 mars 2007 à 13:24
bah euh ca marhce pas
ca m'écrit quand meme les mots qui exite déjà
0
blux Messages postés 26013 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
2 mars 2007 à 13:44
@mot=$datas[0]
Tu ne remplacerais pas @mot à chaque fois, par hasard ?

Pour ajouter une ligne dans un tableau :

push(@tableau,valeur)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
2 mars 2007 à 13:47
Salut,

très simple :-))
# trouver les elements qui se trouve dans la liste A mais pas dans la liste B

my %deja_vu_dansB;
my @que_dans_A;


@deja_vu_dansB{@B} = ();

foreach $elem (@A) {
  push @que_dans_A, $elem unless exists $deja_vu_dans_B{$elem};
}
--
lami20j
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
2 mars 2007 à 13:56
En bref vaut mieux utiliser les hashs

nanou2183 je t'ai envoyé un mail
0
nanou2183 Messages postés 46 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 15 juin 2010 11
2 mars 2007 à 17:39
mais moi je veux les mots que j'ai dans A et les mettre dans B mais que dans B il n'y ait pas de doublons
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
2 mars 2007 à 18:35
Voilà
lami20j@debian:~$ cat union.pl
#!/usr/bin/perl
use warnings;use strict;

my @A = qw/mot alphabet dans je/;
my @B = qw/je dans arbre perl je dans/;
my %union;

$union{$_}++ foreach (@A,@B);

my @union_A_B = sort keys %union;

print "\@A : @A\n\@B : @B\n";
print "A+B sans doublons : @union_A_B\n";
Le résultat
lami20j@debian:~$ perl union.pl
@A : mot alphabet dans je
@B : je dans arbre perl je dans
A+B sans doublons : alphabet arbre dans je mot perl
0