我想要合併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
你應該首先用簡單的語言來制定你的任務。然後將其轉換爲代碼。現在我不知道你是如何從數據中獲得結果的。 –