我想要合并hash1和hash2的相同值并创建第三个散列,其中hash3的键是hash1的键,而hash3的值是hash2的键这些相同的值比较一个散列的值与另一个值的值在perl中创建第三个散列
%hash3 = (
0 =>3,
1 => 2,
2 => 1,
3 => 0
);
我想要合并hash1和hash2的相同值并创建第三个散列,其中hash3的键是hash1的键,而hash3的值是hash2的键这些相同的值比较一个散列的值与另一个值的值在perl中创建第三个散列
%hash3 = (
0 =>3,
1 => 2,
2 => 1,
3 => 0
);
reverse
%hash2
,然后使用map
配对从%hash1
键与曾经被认为是的%hash2
的键:
my %reversed = reverse %hash2;
my %hash3 = map { $_ => $reversed{$hash1{$_}} } keys %hash1;
%hash3
含有s:
{
'1' => '2',
'0' => '3',
'3' => '0',
'2' => '1'
};
感谢您花时间!很好:) – marie
@marie应该注意的是,如果原始%hash2中的值被重复并且您颠倒了您的散列,那么您将散列数据,因为散列中的键必须是唯一的。希望你意识到这一点。 –
为什么'%hash3'3中的'0'键? – fugu
你想要做什么?我不清楚 – fugu
你应该首先用简单的语言来制定你的任务。然后将其转换为代码。现在我不知道你是如何从数据中获得结果的。 –