[解決済み] Rubyで、配列からハッシュを作るにはどうしたらいいですか?
2023-07-11 01:04:52
質問
簡単な配列があります。
arr = ["apples", "bananas", "coconuts", "watermelons"]
また、関数
f
という関数があり、これは一つの文字列の入力に対して操作を行い、値を返します。この演算は非常に高価なので、結果をハッシュにメモしておきたいと思います。
このようなもので目的のハッシュを作ることができるのは知っています。
h = {}
arr.each { |a| h[a] = f(a) }
hを初期化する必要がないので、このような書き方ができるようにしたいのです。
h = arr.(???) { |a| a => f(a) }
それは可能でしょうか?
どのように解決するのですか?
例えば、"f"という面白い名前の関数があるとします。
def f(fruit)
fruit + "!"
end
arr = ["apples", "bananas", "coconuts", "watermelons"]
h = Hash[ *arr.collect { |v| [ v, f(v) ] }.flatten ]
が与える。
{"watermelons"=>"watermelons!", "bananas"=>"bananas!", "apples"=>"apples!", "coconuts"=>"coconuts!"}
更新しました。
コメントにあるように、Ruby 1.8.7ではこのためのより良い構文が導入されています。
h = Hash[arr.collect { |v| [v, f(v)] }]
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] JavaScriptで変数が配列であるかどうかを確認する方法は?
-
[解決済み】配列に何かを追加する方法は?
-
[解決済み] Ruby: 文字列の最初の文字を取得する方法
-
[解決済み] Rubyのオフ・ザ・レール
-
[解決済み] 配列に要素がない場合、その要素を追加します。
最新
-
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でシングルクォートとダブルクォートを使い分けるとパフォーマンスが上がりますか?
-
[解決済み] 現在の日時をDD/MM/YYYY HH:MM形式で取得するにはどうすればよいですか?
-
[解決済み] rvm use 2.0.0 --default を実行すると、"Warning! PATH is not properly set up" と表示される。
-
[解決済み] Rubyで空のファイルを作成する:"touch "と同等?
-
[解決済み] 2つのハッシュを比較するにはどうすればよいですか?
-
[解決済み] Ruby初心者が注意すべきRuby Gotchasとは?[クローズド]
-
[解決済み] 既存の文字列に追加する
-
[解決済み] Rubyで文字列中のある文字の出現回数を検索する
-
[解決済み] バージョン要件におけるティルデグレータン(~>)の意味?
-
[解決済み] キュウリのステップを再利用