ハッシュを裏返す最もエレガントな方法は何ですか?Whayは、ハッシュを裏返す最もエレガントな方法ですか?
これは、キーを値で置き換えることを意味し、その逆もあります(すべての値が100%ユニークであると仮定して)。
など。
foreach my $key (keys %start) {
my $value = $start{$key};
$finish{ $value } = $key;
}
しかし、これはそうすることの最もPerly、エレガントな方法にすることはできません。
my %start = (1=>"a", 2=>"b", 3=>"c");
# ...
# PROFIT:
my %finish = ("c" => 3, "b" => 2, "a" => 1);
と
スタートは、私はそれを強引なやり方を行うことができます知っています!
あなた:そして、ハッシュ変数にそのリストを割り当てると、キーと値
それとも、
map
(あまりエレガントそれでも慣用)を使用することができますになっても、要素になってきて奇数の要素を持つハッシュに変換しますbrute forceメソッドが正しく動作しません。 'keys%start'をループする必要があります。 – cjm「100%ユニーク」とはどういう意味ですか?あなたは広告で働いていますか?何か「ユニークな95%」がありますか?あなたはあなたの妻にあなたの「95%のユニークな愛」を伝えていますか? –
@cjm - そうです。私はコードを修正するために編集し、最小限の範囲でレキシカル変数を宣言するようにクリーンナップを追加しました(言い換えれば、どこにでもmyを追加しました)。 Ike - あなたが同意しない場合は、編集内容を元に戻してください。 – DVK