ruby 将嵌套数组转换为哈希

     2023-03-16     110

关键词:

【中文标题】ruby 将嵌套数组转换为哈希【英文标题】:ruby turn a nested array into a hash 【发布时间】:2015-08-12 05:37:41 【问题描述】:

有没有一种优雅的方式来转换表单的嵌套数组

[["a", 1], ["a", 2], [nil, 3], [nil, 4], ["b", 6], ["b", 8]]

成散列形式

"a" => [1,2], nil => [3,4], "b" => [6,8]

【问题讨论】:

【参考方案1】:
array.each_with_object()|a, h| (h[a.first]||=[] )<< a.last 

【讨论】:

【参考方案2】:
ary = [['a', 1], ['a', 2], [nil, 3], [nil, 4], ['b', 6], ['b', 8]]
ary.group_by(&:first).map |k, v| k => v.map(&:last) 

【讨论】:

你的命令的输出是哈希列表,而不仅仅是一个哈希【参考方案3】:

一种方法可能是:

array = [['a', 1], ['a', 2], [nil, 3], [nil, 4], ['b', 6], ['b', 8]]
array.each_with_object(Hash.new|h,k| h[k] = []) |a, obj| obj[a.first] << a.last 
# => "a"=>[1, 2], nil=>[3, 4], "b"=>[6, 8]

【讨论】:

【参考方案4】:

这是一种方式:

arr = [["a", 1], ["a", 2], [nil, 3], [nil, 4], ["b", 6], ["b", 8]]

h = Hash.new |hash, key| hash[key] = []
arr.each |e| h[e[0]] << e[1]
p h #=> "a"=>[1, 2], nil=>[3, 4], "b"=>[6, 8]

【讨论】:

【参考方案5】:
ary = [['a', 1], ['a', 2], [nil, 3], [nil, 4], ['b', 6], ['b', 8]]

ary.group_by(&:first).
# =>  'a' => [['a', 1], ['a', 2]], nil => [[nil, 3], [nil, 4]], 'b' => [['b', 6], ['b', 8]] 
  map |k, v| [k, v.map(&:last)] .
# => [['a', [1, 2]], [nil, [3, 4]], ['b', [6, 8]]]
  to_h
# =>  'a' => [1, 2], nil => [3, 4], 'b' => [6, 8] 

【讨论】:

感谢所有建议,我会选择Hash[array.group_by(&amp;:first).map|k,v| [k, v.map(&amp;:last)]],因为我认为它是最易读的(?)

将数组的Ruby数组转换为哈希

】将数组的Ruby数组转换为哈希【英文标题】:ConvertingRubyarrayofarrayintoahash【发布时间】:2021-11-2516:40:03【问题描述】:我有一个数组如下:[["2021-07-26T11:38:42.000+09:00",1127167],["2021-08-26T11:38:42.000+09:00",1127170],["2021-09-26T11:38:42.000+09:00"... 查看详情

ruby将哈希值转换为排序的字符串数组,以便与另一个哈希值进行比较(代码片段)

查看详情

在Ruby中将数组转换为哈希的最佳方法是啥

】在Ruby中将数组转换为哈希的最佳方法是啥【英文标题】:WhatisthebestwaytoconvertanarraytoahashinRuby在Ruby中将数组转换为哈希的最佳方法是什么【发布时间】:2010-09-0713:30:00【问题描述】:在Ruby中,给定以下形式之一的数组...[apple,1,... 查看详情

Rails:如何将对象数组的哈希转换为 json

】Rails:如何将对象数组的哈希转换为json【英文标题】:Rails:Howtoconverthashofarrayofobjectstojson【发布时间】:2021-12-0316:20:18【问题描述】:我是一名java和Js开发人员,所以我对rails和ruby​​完全陌生。在我的一个项目中,我使用rail... 查看详情

使用键数组遍历嵌套的 Ruby 哈希

】使用键数组遍历嵌套的Ruby哈希【英文标题】:TraverseNestedRubyHashWithArrayofKeys【发布时间】:2017-04-0300:28:07【问题描述】:给定一个包含n层嵌套值、一个字段名和一个路径的散列contact="Email"=>"bob@bob.com","Account"=>"Exchange"=>tru... 查看详情

Ruby 将对象转换为哈希

】Ruby将对象转换为哈希【英文标题】:RubyconvertObjecttoHash【发布时间】:2011-06-2904:03:48【问题描述】:假设我有一个带有@name="book"和@price=15.95的Gift对象。将其转换为Ruby中的Hashname:"book",price:15.95而不是Rails的最佳方... 查看详情

将 Ruby 哈希转换为 YAML

】将Ruby哈希转换为YAML【英文标题】:ConvertRubyHashintoYAML【发布时间】:2013-07-0817:26:55【问题描述】:我需要将下面提供的哈希转换为可读的YAML。看起来我可以提供YAML::load一个字符串,但我想我需要先将它转换成这样的:hostname1... 查看详情

如何将 JSON 转换为 Ruby 哈希

】如何将JSON转换为Ruby哈希【英文标题】:HowtoconvertJSONtoaRubyhash【发布时间】:2011-12-1908:10:46【问题描述】:我有一个JSON对象包含以下值:@value="val":"test","val1":"test1","val2":"test2"我想在Ruby中遍历它以获取键/值对。当我使用@each时... 查看详情

如何将 yaml 文件解析为 ruby​​ 哈希和/或数组?

】如何将yaml文件解析为ruby​​哈希和/或数组?【英文标题】:Howtoparseayamlfileintorubyhashsand/orarrays?【发布时间】:2011-03-2917:47:13【问题描述】:我需要将yaml文件加载到哈希中,我该怎么办?【问题讨论】:请更新您选择的答案... 查看详情

将 Nokogiri 文档转换为 Ruby 哈希

】将Nokogiri文档转换为Ruby哈希【英文标题】:ConvertaNokogiridocumenttoaRubyHash【发布时间】:2010-11-1620:59:47【问题描述】:有没有一种简单的方法可以将NokogiriXML文档转换为哈希?类似于Rails的Hash.from_xml。【问题讨论】:实际上,Rails... 查看详情

如何表示将 ruby​​ 哈希转换为 yaml 的 aws 内部函数

】如何表示将ruby​​哈希转换为yaml的aws内部函数【英文标题】:Howtorepresentawsinternalfunctionstoconvertrubyhashtoyaml【发布时间】:2018-06-1603:35:10【问题描述】:我正在尝试从ruby​​哈希生成AWScloudformationYAML。但我无法弄清楚如何在rub... 查看详情

如何将 Ruby 哈希转换为 XML?

】如何将Ruby哈希转换为XML?【英文标题】:HowdoIconvertaRubyhashtoXML?【发布时间】:2010-12-1622:18:43【问题描述】:这是我最终需要的特定XML:<?xmlversion="1.0"encoding="UTF-8"?><customer><email>joe@example.com</email><first_name>... 查看详情

将 Ruby 哈希转换为 JSON(不带转义字符)

】将Ruby哈希转换为JSON(不带转义字符)【英文标题】:ConvertaRubyHashintoJSON(withoutescapecharacters)【发布时间】:2014-10-2019:43:22【问题描述】:我有一个哈希:my_hash="bob.johnson@example.com"=>"first"=>"Bob","last"=>"Johnson","lisa.dell@example.... 查看详情

使用 ruby​​ 将多个实例变量转换为哈希的更好方法?

】使用ruby​​将多个实例变量转换为哈希的更好方法?【英文标题】:Betterwaytoconvertseveralinstancevariablesintohashwithruby?【发布时间】:2011-11-3003:20:16【问题描述】:我收到了格式为的回复#<Response:0x000...@first="Charlie",@last=Kelly,....... 查看详情

将 json 格式的键值对转换为以符号为键的 ruby​​ 哈希的最佳方法是啥?

】将json格式的键值对转换为以符号为键的ruby​​哈希的最佳方法是啥?【英文标题】:whatisthebestwaytoconvertajsonformattedkeyvaluepairtorubyhashwithsymbolaskey?将json格式的键值对转换为以符号为键的ruby​​哈希的最佳方法是什么?【发布时... 查看详情

Ruby 哈希组合

...个选项都有一系列选项)转换为代表这些选项组合的散列数组。例如:#Input::color=>["blue","grey"],:size=>["s","m","l"]#Output:[:color=>"blue",:size=>"s",: 查看详情

ruby将ruby对象转换为哈希。这不是用于对象序列化或映射,而是用于保存包含的信息(代码片段)

查看详情

ruby将数组转为哈希(代码片段)

查看详情