ruby - 如何通过从另一个数组分配随机值将数组转换为散列?

标签 ruby

我有一个数组,names,包含 12 个名字。

我有另一个数组 weights,包含 12 个数字。

我想创建一个散列,其中键是名称,值是权重。

权重数字是预先确定的(例如,它们应该始终为 200、150 和 180),但每次运行程序时都应将它们分配给随机名称。

例如,如果我使用数组 names = ['homer', 'marge', 'maggie']weights = [265, 140, 10] ,我可以运行程序并得到 {homer: 140, marge: 265, maggie: 10},然后重新运行它并得到 {homer: 10, marge: 140, maggie: 265}

这样做的明智方法是什么?

最佳答案

另一个答案几乎得到它,但它没有首先打乱 weights 数组,所以它总是返回相同的散列。

但是,这将按预期工作:

names.zip(weights.shuffle).to_h

关于ruby - 如何通过从另一个数组分配随机值将数组转换为散列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29113805/

相关文章:

android - Ruboto水平进度条?

ruby - 我可以继续使用 MongoDB v2.2.0rc 使用 1.6.4 Ruby 驱动程序吗?

ruby - 在 ruby​​ 中查找任意正则表达式的最后(最右边)匹配

ruby-on-rails - 我无法在 OSX 10.7.5 上安装 Rails

ruby - 如何从 ruby​​ 线程获取错误消息

ruby - 在 Ruby 中,如何解析 "9/12/2010 7:02pm"?

ruby - 我应该为这个独立的 Ruby 应用程序编写哪些 RSpec 测试?

ruby-on-rails - 在路由重定向 block 中访问 Rails 路由助手

ruby-on-rails - 我如何设置 'attr_accessible' 以不允许访问使用 Ruby on Rails 的模型的任何字段?

ruby-on-rails - 字符串 block (<<-BLOCK, param1, param2) 上的参数是什么意思?