-1

ハッシュ値に要素を追加しようとしています。例:

tally={}
tally["aa"]=[1]
tally["aa"].append(2)  => so it should be tally["aa"]=[1,2]

私のコード:

def list_duplicates(seq)
    tally = {}
    seq.each_with_index do |item,i|         
      if tally[item].nil?
        tally[item]=[i]         
      else          
        tally[item].add(i)
      end
    end
    a=tally.keys()
    b=tally.values()
    if b.length>1
      return [a,b]
    end
end


sourse=["AAA","GGG","AAA","BBB","AAA","BBB","agaha"]
list_duplicates(sourse).each do |l|
    puts(l)

end

しかし、それは私にエラーを示しています:

undefined method `append' for []:Array (NoMethodError)

既存のアイテムの値にアイテムを追加するにはどうすればよいですか?

4

3 に答える 3

2

pushまたは<<の代わりに使用する必要がありappendます。

于 2013-05-24T12:49:46.807 に答える
2

push()またはを使用できます<<。クラスappend()に関して言えば、RubyにはありませんArray

tally["aa"].push(a)またtally["aa"] << a

配列のドキュメントはこちら

于 2013-05-24T12:50:09.233 に答える
1

Ruby のドキュメントに示されている Array の「追加」メソッドはありません。また、コード サンプルはadd, notを示していますappendが、これも Array のメソッドではありません。を使用しtally[item] << iます。

于 2013-05-24T12:50:24.460 に答える