[解決済み] RubyのHashを数値でソートする方法は?
2022-04-24 13:03:05
質問
カウンタハッシュをカウント順に並べ替えたいのですが、どうすればよいですか?問題は、デフォルトのHash.sort関数が、数値の大きさではなく文字列のように数値をソートすることです。
すなわち、与えられたハッシュ。
metrics = {"sitea.com" => 745, "siteb.com" => 9, "sitec.com" => 10 }
このコードを実行する
metrics.sort {|a1,a2| a2[1]<=>a1[1]}
は、ソートされた配列を返します。
[ 'siteb.com', 9, 'sitea.com', 745, 'sitec.com', 10]
745が9より大きな数字であっても、9が一番に表示されます。誰が一番多くカウントしているかを表示しようとすると、これは私の人生を難しくしています。)
ハッシュ(配列でも可)を数値の大きさでソートする方法について何かアイデアはありますか?
よろしくお願いします。
解決方法は?
文字列の値でソートされないので、どのように結果を得たのかわかりません。逆にしてください
a1
と
a2
の例では
どんな場合でもベストな方法は(Mladenのように)。
metrics = {"sitea.com" => 745, "siteb.com" => 9, "sitec.com" => 10 }
metrics.sort_by {|_key, value| value}
# ==> [["siteb.com", 9], ["sitec.com", 10], ["sitea.com", 745]]
結果としてハッシュが必要な場合は
to_h
(Ruby 2.0+ の場合)
metrics.sort_by {|_key, value| value}.to_h
# ==> {"siteb.com" => 9, "sitec.com" => 10, "sitea.com", 745}
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyで文字列を小文字・大文字に変換する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] JavaでMD5ハッシュを生成するにはどうすればよいですか?
-
[解決済み] Rubyで乱数を取得する方法
-
[解決済み】PHPパスワードのハッシュとソルトの安全性について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Rubyで新しい文字列を作成せずに文字列をトリミングする標準的な方法は何ですか?
-
[解決済み] Rubyのローカル変数が未定義である
-
[解決済み] -bashです。/Users/myname/.bash_profile: パーミッションが拒否されました
-
[解決済み] Ruby 'require' エラー: そのようなファイルをロードできない
-
[解決済み] ルビー階乗関数
-
[解決済み] ルビーです。そのようなファイルやディレクトリはありません @ rb_sysopen - testfile (Errno::ENOENT)
-
[解決済み] RubyのFile.openで "No such file or directory - text.txt (Errno::ENOENT)" というエラーが発生する。
-
[解決済み] Rubyのコロン演算子とは何ですか?
-
[解決済み] Ruby の `print` から bash スクリプトを呼び出して echo するにはどうしたらいいですか?
-
[解決済み] Rubyのmap(&:name)ってどういう意味?