Как я могу сделать хеш Perl из массива с ключами и другого массива со значениями?

В Perl, как я делаю хеш из массивов @A и @B наличие равного числа элементов? Цель состоит в том, чтобы иметь каждое значение @A как ключ для оценки в @B. Получающийся хеш %C был бы, затем позволить однозначно определить элемент от @B предоставление ключа от @A.

8
задан brian d foy 21 February 2010 в 13:27
поделиться

4 ответа

это так же просто, как

my %c;
@c{@a} = @b;
23
ответ дан 3 November 2019 в 13:09
поделиться
use List::MoreUtils 'mesh';
my %c = mesh @a, @b;

Вот как это делается внутри (если вы уверены в равном количестве элементов):

my %c = map { $a[$_] => $b[$_] } 0 .. $#a;
8
ответ дан 3 November 2019 в 13:09
поделиться

Если я правильно понимаю проблему:

my %c;
$c{$a[$_]} = $b[$_] for (0 .. @a-1);
2
ответ дан 3 November 2019 в 13:09
поделиться

A - ключи, B - значения хэша C:

use strict;
use warnings;

my @a = 1 .. 3;
my @b = 4 .. 6;
my %c;
for (0 .. $#a) {
    $c{$a[$_]} = $b[$_]
}

Помните, что в массиве A не должно быть дубликатов значений.

0
ответ дан 3 November 2019 в 13:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: