合并数组以散列和使用重复项 [英] Merge arrays to hash and use duplicates

查看:97
本文介绍了合并数组以散列和使用重复项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我如何保持重复并维持秩序?例如:

$ p $ keys = [1,2,1]
values = [a,b ,c]
Hash [keys.zip(values)]#=> {1 =>c2 =>b}


解决方案

由于贾斯汀& Luca说:
$ b


哈希不允许重复键。


你可以做的最好的方法是通过获得数组值,在这个 SO问题:

  Hash.new.tap {| H | keys.zip(values).each {| k,v | (h [k] || = [])<< v}} 
#=> {1 => [a,c],2 => [b]}


How do I keep duplicates and maintain order? For example:

keys   = [1, 2, 1]
values = ["a", "b", "c"]
Hash[keys.zip(values)] # => {1=>"c", 2=>"b"}

解决方案

As Justin & Luca said:

Hashes don't allow duplicate keys.

Best you can do is by having array of values, found this solution in this SO question:

Hash.new.tap { |h| keys.zip(values).each { |k, v| (h[k] ||= []) << v } }
# => {1=>["a", "c"], 2=>["b"]} 

这篇关于合并数组以散列和使用重复项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆