次のPerlコードをPythonで複製しようとしています。オブジェクトは、複数のハッシュ/辞書値でソートされたハッシュ/辞書キーの配列を取得することです。perl コードの例:
my $hash = {
'item1'=> {'id'=>'a', 'pos'=>6},
'item2'=> {'id'=>'a', 'pos'=>7},
'item3'=> {'id'=>'b', 'pos'=>4},
'item4'=> {'id'=>'a', 'pos'=>5},
'item5'=> {'id'=>'b', 'pos'=>2},
};
my @keys = sort {
$hash->{$a}->{id} cmp $hash->{$b}->{id} ||
$hash->{$a}->{pos} <=> $hash->{$b}->{pos}
} keys %$hash;
print "@keys\n";
id
これは字句順、次に数値順でソートされるpos
ため、期待される結果は次のようになります。
item4 item1 item2 item5 item3