Bonjour,
J'ai deux tableaux:
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
21
22 @TabeauConsensus $VAR75 = [ 'C', 'T' ]; $VAR76 = [ 'G' ]; $VAR77 = [ 'A', 'T' ]; $VAR78 = [ 'A', 'G' ]; $VAR79 = [ 'A', 'T' ];
Il faudrait quelque chose comme ça ^^ mais qui fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 my %Correspondances = ( qw(GA) => 'R', qw(GT) => 'K', qw(GC) => 'S', qw(AT) => 'W', qw(AC) => 'M', qw(TC) => 'Y', qw(GAT) => 'D', qw(GAC) => 'V', qw(GTC) => 'B', qw(ATC) => 'H', qw(ATCG) => 'N', );
Vu que c'est une égalité d'arrays, cela ne fonctionne pas. Existe t'il une façon plus simple que d'utiliser des boucles vérifiant une à une l'égalité des élémentes des 2 array? Peut-être avec map { $instances{$_}++ } @array1;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for (my $j =0; $j<@TableauConsensus; $j++) { @{$TableauConsensus[$j]} = $Correspondances{@{$TableauConsensus[$j]}}; }
Vous m'aviez précédemment aidée sur le forum avec
Est-ce ainsi qu'il faut que je procède? Et vérifier que @items soit vide?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 my @AccReq = ('AF148850','AF148851','AZERTY','X55640'); my @AccTrouves = ('AF148850','AF148851','X55640'); my %instances = (); map { $instances{$_}++ } @AccReq; map { $instances{$_}++ } @AccTrouves; my @items = grep { $instances{$_} == 1 } keys(%instances); my @doubles = grep { $instances{$_} == 2 } keys(%instances); print("Items uniques : \n * " . join("\n * ", @items) . "\n"); print("Items en double : \n * " . join("\n * ", @doubles) . "\n");
Ou existe-t'il plus simple?
Merci pour votre aide,
Jasmine,
Partager