pokemon_list.split.product([0]).to_h
#=> {"pikachu"=>0, "charizard"=>0, "jigglypuff"=>0, "bulbasaur"=>0}
を行うことができます
手順:
a = pokemon_list.split
#=> ["pikachu", "charizard", "jigglypuff", "bulbasaur"]
b = a.product([0])
#=> [["pikachu", 0], ["charizard", 0], ["jigglypuff", 0], ["bulbasaur", 0]]
b.to_h
#=> <hash shown above>
あるいは、ここ
Hash[pokemon_list.split.product([0])]
Array#productはa
はここpokenman_list.size
等しい要素、ゼロから成るアレイであるpokeman_list.zip(a)
のわずか手の形です。 Enumerable#zipも参照してください。
String#gsubを使用してください。
これは、文字列を配列に変換する必要がない別の方法です。
pokemon_list.gsub(/[[:alpha:]]+/).with_object({}) { |w,h| h[w] = 0 }
#=> {"pikachu"=>0, "charizard"=>0, "jigglypuff"=>0, "bulbasaur"=>0}
ブロックせずに実行されたときgsub
が列挙を返すので、これが動作します。それは確かに(その文字列の文字で置き換えられないので)そのメソッドの珍しい使用ですが、私は時に便利だと判明したものです。
'' pikachu charizard jigglypuff bulbasaur ''stringにはどんな結果が期待されますか? – MikDiet
質問を編集して、指定された文字列 'pokemon_list'の戻り値(ハッシュ)を表示してください。 –