0
我具有以下形式的数据:字符串转换为阵列的散列以指定的格式红宝石
Manju She is a good girl
Raja He is okay boy
Manju She comes late in the class
Raja He is punctual
我想创建从该这样的结构:
manju_hash = {"Manju1" => ["She", "is", "a","good","girl"], "Manju2" => ["She", "comes","late", "in", "the","class"]}
raja_hash = {"Raja1" => ["He", "is", "okay", "boy"], "Raja2" => ["He", "is", "punctual"]}
这是代码我写的:
manju_hash = Hash.new
raja_hash = Hash.new
data_lines.split(/\n+/).each do |val|
value =val.split(/\s+/)
key = value[0]
if (key=='Manju')
value.delete(key)
manju_hash.merge!(key+(manju_hash.size+1).to_s => value)
elsif (key=='Raja')
value.delete(key)
raja_hash.merge!(key+(raja_hash.size+1).to_s => value)
end
end
这是实现这一目标的正确方法,还是有一些其他惯用的ruby方式?其他一些改进,我可以做
'计数器[关键] .to_i'对我来说是一个谜,但。它如何转换?例如, – inquisitive
计数器是一个包含所有名称和其出现次数的散列,例如{'Raja'=> 1,'Manju'=> 2}。 .to_i将从零转换为0 –