Rubyでハッシュのデフォルト値を配列にする

# ハッシュのデフォルト値を配列に
list = Hash.new{ |hash, key| hash[key] = []}

# キーの配列に要素を追加
list[:even] << 2
list[:odd] << 3

# 結果を見る
p list #=> {:even=>[2], :odd=>[3]}

ハッシュのデフォルト値をゼロで初期化

h = Hash.new { |hash, key| hash[key] = 0 }

h[:a] += 1 #=> 1
h[:a] += 1 #=> 2
h #=> {:a=>2}

まとめ

Hash.new{ |hash, key| hash[key] = []}

で初期値を配列にできる。