在Perl中,如何使数组@A
和@B
具有相同数量的元素的散列?目标是在@B
中将每个值@A
作为关键值。所得到的散列%C
将使得能够唯一地识别来自@A
的供应密钥的@B
中的元素。如何从数组中使用键和另一个数组创建一个Perl哈希值?
8
A
回答
23
它的那样简单
my %c;
@c{@a} = @b;
2
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数组。
8
use List::MoreUtils 'mesh';
my %c = mesh @a, @b;
这就是它的内部是怎样做(如果你确定大约相等数量的元素):
my %c = map { $a[$_] => $b[$_] } 0 .. $#a;
+0
好的一个,我没有想到使用地图。 – 2010-02-21 17:58:27
+0
或者滚动你自己的:'sub mesh {@_ [map $ _&1? $ _ >> 1:($ _ >> 1)+($#_ >> 1),1 .. @ _]}' – ysth 2010-02-21 23:28:06
相关问题
- 1. 如何从另一个php数组创建php哈希数组?
- 2. 为哈希键值创建一个数组(Perl)
- 3. 如何将一个数组转换为哈希键和另一个数组转换为相同哈希的值?
- 4. 反转哈希:从一个数组中创建多个哈希键
- 5. 如何从Perl中的哈希数组创建哈希散列?
- 6. Ruby:创建一个哈希数组,其中每个值都是一个数组
- 7. 如何在Perl中创建数组和哈希值?
- 8. 如何在perl中创建两个数组的哈希映射(键值对)
- 9. 的Perl:数组的哈希值与另一个阵列相比
- 10. 使用两个数组创建哈希
- 11. 如何构建一个Perl多维数组或哈希?
- 12. Perl的哈希数组 - 引用数组中的每个哈希值?
- 13. 创建一个整数和值为整数的哈希集键的哈希表
- 14. 如何在Perl中使用8个标题/列和20行创建一个哈希数组使用for循环
- 15. 使用关联数组键和数值数组值创建一个数组PHP
- 16. 在Perl中使用哈希和数组
- 17. 使用数组作为键创建Perl哈希
- 18. Perl数据结构:如何从一个数组创建一个数组引用
- 19. Perl:将数组的2个哈希与另一个数组进行比较
- 20. 如何在Perl中创建一个共享变量(哈希数组)
- 21. 使用哈希选择一个数组
- 22. 排序数组,这是一个哈希值在Perl中
- 23. 在perl中打印一个哈希数组值
- 24. 红宝石:使用哈希数组从哈希的另一个阵列
- 25. Perl哈希和数组
- 26. 从另一个数组创建数组,如果值是相同
- 27. 如何在一个数组中创建另一个数组(VBA)中的值?
- 28. 将红宝石哈希与值数组合并到另一个哈希值与数组数组
- 29. 如何从Perl中数组引用哈希删除键
- 30. 用两个数组创建一个哈希表
太棒了!我忘了切片解决方案,但我经常使用它。 – codeholic 2010-02-21 18:29:12
谢谢!我想知道为什么它不在书中(我读过的书)。 – Temujin 2010-02-21 20:10:53
http://perldoc.perl.org/perldata.html#Slices – toolic 2010-02-21 20:19:34