人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Ruby についての質問です、同じ長さで、添え字が数字のままの配列a,bがあるときに、a の値をキーにして、値をb の値にするのは簡単にできるのでしょうか?
PHP で言えば、array_combine という関数と同じものです。
http://php.benscom.com/manual/ja/function.array-combine.php
each でまわせばできるのは当然なので、コマンド一発があったら教えてください。

●質問者: isogaya
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:PHP Ruby キー コマンド 数字
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● いわどん
●27ポイント

おそらくarray_combine関数そのままの機能は無いと思いますので、Array#zipとHash[]を組み合わせてみるのはどうでしょうか。

a = [1, 2, 3]
b = [4, 5, 6]
a.zip(b) # => [[1, 4], [2, 5], [3, 6]]
Hash[a.zip(b)] #=> {1 => 4, 2 => 5, 3 => 6}

2 ● るびきち
●27ポイント

Enumerable#zip, Array#transpose等。

a = ['green', 'red', 'yellow']
b = ['avocado', 'apple', 'banana']
a.zip(b) # => [["green", "avocado"], ["red", "apple"], ["yellow", "banana"]]
[a,b].transpose # => [["green", "avocado"], ["red", "apple"], ["yellow", "banana"]]
Hash[*a.zip(b).flatten(1)] # => {"green"=>"avocado", "red"=>"apple", "yellow"=>"banana"}

http://d.hatena.ne.jp/rubikitch/


3 ● nora1962
●26ポイント

keys = [1, 2, 3]

vals = ["a", "b", "c"]

alist = keys.zip(vals)

h = Hash[*alist.flatten]

というやり方があるらしいです。

http://www.ruby-lang.org/ja/man/html/Hash.html

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ