首页 / 知识
在Ruby中将数组转换为哈希的最佳方法是什么
2023-04-13 22:32:00

What is the best way to convert an array to a hash in Ruby在Ruby中,给定以下形式之一的数组...
...什么是将其转换为哈希形式的最佳方法...
只需使用 例如:
使用 注意:有关简洁高效的解决方案,请参阅Marc-Andr? Lafortune的答案如下。 该答案最初是作为使用flatten方法的替代方法提供的,在撰写本文时,flatten是获得最高评价的方法。我应该澄清的是,我不打算将此示例作为最佳实践或有效方法。原始答案如下。 警告!使用flatten的解决方案将不会保留Array键或值! 以@John Topley的流行答案为基础,让我们尝试:
这将引发错误:
构造函数期望一个长度均匀的数组(例如['k1','v1,'k2','v2'])。更糟糕的是,变平为均匀长度的另一个Array只会默默地为我们提供具有错误值的Hash。 如果要使用数组键或值,可以使用map:
这将保留Array键:
最好的方法是使用
请注意,
注意: Ruby 2.1.0中引入了不带块的 在Ruby 2.1之前,可以使用不太清晰的
最后,要警惕使用 更新 Ruby 2.1.0今天发布。我附带了 Ruby文档示例:
第二种形式更简单:
a =数组,h =哈希,r =返回值哈希(我们在其中累加的哈希),i =数组中的项 我想到的第一种形式的最简洁的方式是这样的:
您还可以使用以下方法将2D数组简单地转换为哈希值:
概要 追加答案,但使用匿名数组并进行注释:
从内部开始,分开回答:
中间结果是:
flatten然后将其转换为:
然后: 我们可以将其用作
其结果是:
如果您的数组看起来像这样-
,并且您希望每个数组的第一个元素成为哈希键,其余元素成为值数组,那么您可以执行以下操作-
不确定这是否是最好的方法,但这可行:
如果数值是seq索引,那么我们可以有更简单的方法...
|
最新内容
相关内容
linux创建数组命令?
linux创建数组命令?,地址,工作,系统,信息,命令,代码,目录,情况,标准,文件,Linux命令linux系统常用操作命令如下:ls:全拼list,功能是列出目录的内linux给定权限命令?
linux给定权限命令?,系统,权限,文件,数字,工作,命令,目录,用户,选项,其他用户,linux文件权限1、文件的权限表示在第一个字段,以10个字符表示。2linux命令输入方法?
linux命令输入方法?,系统,电脑,密码,管理,地址,命令,网站,工具,首开,位置,linux终端输入~怎么弄中间在电脑上打开需要的Word文件进入。进入到文Python中什么是反射?使用方法有哪
Python中什么是反射?使用方法有哪些?,信息,培训,状态,术语,检测,反射,属性,对象,字符串,方法,反射这个术语在很多语言中都存在,并且存在大量的Python3实现旋转数组的3种算法
Python3实现旋转数组的3种算法,位置,代码,时间,培训,算法,数组,解法,结果,长度,索引,下面是Python3实现的旋转数组的3种算法。一、题目给定一Python中有哪些方法可以解压文件?
Python中有哪些方法可以解压文件?,工具,系统,工作,培训,文件,文件夹,方法,窗体,不同于,以下内容,在Python学习和日常使用中,很容易造成文件过大Python列表类型list合并有哪些方法
Python列表类型list合并有哪些方法?,培训,方法,列表,可能会,数组,切片,下文,字符串,数据类型,请看,在Python编程语言中,有各种数据类型,比如字符零基础学习Python的四种方法
零基础学习Python的四种方法,基础,代码,基础知识,培训,发展,时间,知识,书籍,初学者,练习,近年来,随着移动互联网的发展,对Python人才的需求越来如何在Python中定义类方法和修改类
如何在Python中定义类方法和修改类属性?,代码,方法,培训,对象,实例,定义,结果,示例,赋值,属性,Python中的类还可定义使用@classmethod修饰的类提高Python 效率的 5 种高级方法
提高Python 效率的 5 种高级方法,代码,数字,函数,有限,设备,项目,工具,培训,列表,内存,任何编程语言的高级特征通常都是通过大量的使用经验才关于Python的高效学习方法
关于Python的高效学习方法,基础,培训,资料,质量,技术,系统,情况,学习方法,高效,初学者,今天给大家分享一下Python高效的学习方法,尽管每个人的学习python要注意的方法事项
学习python要注意的方法事项,代码,基础,环境,网络,时间,地方,分析,评论,人工智能,数据,python入门比较建议找一个视频课程,花一周时间快速过掉