Perl コードの行を Python に変換しようとしていますが、Python の sorted() メソッドで障害が発生しました。Python には Perl のようなネイティブ ハッシュ サポートがないため、autodict() を使用して Perl のハッシュ動作を再現しました。以下は、並べ替えがどのように行われたかのコード スニペットです。
パール:
hash{one}{"index"} = 1
hash{one}{"value"} = "uno"
hash{two}{"index"} = 2
hash{two}{"value"} = "dos"
hash{three}{"index"} = 3
hash{three}{"value"} = "tres"
foreach my $ctg (sort hash{$a}{"index"} <=> hash{$b}{"index"}} keys %{ hash })
パイソン:
hash[one]["index"] = 1
hash[one]["value"] = "uno"
hash[two]["index"] = 2
hash[two]["value"] = "dos"
hash[three]["index"] = 3
hash[three]["value"] = "tres"
for ctg in sorted(hash):
上記の翻訳は正確ではありませんでした。Python バージョンは、ハッシュの最初の要素である 1、2、3 に基づいてソートされます。しかし、Perl バージョンは「インデックス」に基づいてソートを行っています。