ruby - 如何将文件的元素放入哈希中? - ruby

标签 ruby hash

所以我有一个格式为:

Key1   Value1
Key2   Value2
Key3   Value3

由制表符分隔。我的问题是如何打开这个文件并将其放入散列中?我试过这样做:

 fp = File.open(file_path)

 fp.each do |line|
   value = line.chomp.split("\t")
   hash = Hash[*value.flatten]
 end

但在此循环结束时,@datafile 哈希仅包含最新的条目......我有点想要它......

最佳答案

hash[key] = value 添加一个新的键值对。 hash.update(otherhash) 将 otherhash 中的键值对添加到 hash。

如果您执行 hash = foo,您会重新分配哈希值,从而丢失旧内容。

因此对于您的情况,您可以:

hash = {}
File.open(file_path) do |fp|
  fp.each do |line|
    key, value = line.chomp.split("\t")
    hash[key] = value
  end
end

关于ruby - 如何将文件的元素放入哈希中? - ruby ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1263152/

相关文章:

ruby-on-rails - 优雅的 Rails : multiple routes, 相同的 Controller Action

ruby-on-rails - Friendly_id 在记录更新时更改 slug

ruby - 需要特定版本的 RubyGems

Ruby - 将两个散列与一些类似的键合并

mysql - 如何解密md5()中的加密密码?

电子邮件重复数据删除

ruby-on-rails - Ruby - 一切都评估为真

Ruby - 将字符串转换为日期

ruby - 将元素添加到 ruby​​ 中的嵌套哈希

PHP:将哈希密码与用户输入相匹配不起作用