将Ruby哈希一次将多个键设置为相同的值

Ste*_*ith 5 ruby hash

我正在尝试创建一个巨大的哈希,其中有很多键,但只有几个值。

到目前为止,我有这样的...

du_factor = {
  "A" => 1,
  "B" => 1,
  "C" => 1,
  "D" => 2,
  "E" => 2,
  "F" => 2,
Run Code Online (Sandbox Code Playgroud)

...等等,等等等等,持续不断甚至超过您甚至想知道的时间。在不完全翻转其结构的情况下,创建此哈希的更短,更优雅的方法是什么?

编辑:嗨,我意识到有一种比给出的答案更简单,更优雅的方法。只需声明一个空哈希,然后使用所需键声明一些数组,然后使用for语句将其插入到数组中,如下所示:

du1 = ["A", "B", "C"]
du2 = ["D", "E", "F"]

dufactor = {}

for i in du1
  dufactor[i] = 1
end

for i in du740
  dufactor[i] = 2
end
Run Code Online (Sandbox Code Playgroud)

...但是没有人建议让我,极端的Ruby n00b,这一事实认为我一定不应该这样做。性能问题?

shi*_*kia 0

keys = %w(A B C D E F)
values = [1, 1, 1, 2, 2, 2]
du_factor = Hash[*[keys, values].transpose.flatten]
Run Code Online (Sandbox Code Playgroud)

如果这些数量超过 100,将它们写入 CSV 文件可能会更好。