在Perl中,如何从具有相同数量元素的数组@A
和@B
进行哈希?目标是将@A
的每个值作为@B
中值的关键。生成的哈希值%C
可以唯一地标识来自@B
的{{1}}提供密钥的元素。
答案 0 :(得分:23)
就像
一样简单my %c;
@c{@a} = @b;
答案 1 :(得分:8)
use List::MoreUtils 'mesh';
my %c = mesh @a, @b;
这就是内部制作方式(如果您确定元素数量相等):
my %c = map { $a[$_] => $b[$_] } 0 .. $#a;
答案 2 :(得分:2)
如果我理解正确的问题:
my %c;
$c{$a[$_]} = $b[$_] for (0 .. @a-1);
答案 3 :(得分:0)
A是键,B是散列C的值:
use strict;
use warnings;
my @a = 1 .. 3;
my @b = 4 .. 6;
my %c;
for (0 .. $#a) {
$c{$a[$_]} = $b[$_]
}
请记住,A数组中不得有任何重复值。