如何保留重复并维护订单?例如:
keys = [1, 2, 1]
values = ["a", "b", "c"]
Hash[keys.zip(values)] # => {1=>"c", 2=>"b"}
答案 0 :(得分:4)
Justin&卢卡说:
哈希不允许重复密钥。
你能做的最好就是拥有一系列值,在this中找到这个解决方案所以问题:
Hash.new.tap { |h| keys.zip(values).each { |k, v| (h[k] ||= []) << v } }
# => {1=>["a", "c"], 2=>["b"]}
答案 1 :(得分:2)
如果将keys数组用作散列键,则无法保留重复项。它们必须是唯一的