如何在ruby中组合数组(combine arrays in ruby)

“组合数组的最佳方式是什么?”这个问题相当模糊,可能意味着一些不同的事情。...

“组合数组的最佳方式是什么?”这个问题相当模糊,可能意味着一些不同的事情。

man coding late

串联

连接是将一个事物附加到另一个事物上。例如,将数组[1,2,3]和[4,5,6]连接起来将得到[1,2,3,4,5,6]。这可以在Ruby中通过几种方式实现。

第一个是加号运算符。这将把一个数组附加到另一个数组的末尾,用这两个数组的元素创建第三个数组。

或者,使用concat方法(+运算符和concat方法在功能上是等效的)。

如果你正在做很多这样的手术,你可能希望避免这种情况。对象创建不是免费的,这些操作中的每一个都会创建第三个数组。如果要在位修改数组,使用新元素使其变长,可以使用&lt&书信电报;操作人员然而,如果你尝试这样的事情,你会得到意想不到的结果。

我们得到的不是预期的[1,2,3,4,5,6]数组,而是[1,2,3,4,5,6]。这很有意义,append操作符获取您提供给它的对象并将其附加到数组的末尾。它不知道也不关心您是否尝试将另一个数组附加到该数组。所以我们可以自己绕过去。

集合运算

世界“联合”也可用于描述集合操作。Ruby中提供了相交、并集和差分的基本集合操作。请记住,“集合”描述的是一组在该集合中唯一的对象(或数学上的数字)。例如,如果要对数组[1,1,2,3]执行set操作,Ruby将过滤掉第二个1,即使结果集中可能有1。因此请注意,这些集合操作与列表操作不同。集合和列表是根本不同的东西。

可以使用|运算符进行两个集合的并集。这是“或”运算符,如果元素在一个集合或另一个集合中,则它在结果集合中。所以[1,2,3]|[3,4,5]的结果是[1,2,3,4,5](记住,即使有两个三,这也是一个集合运算,而不是列表运算)。

两个集合的交集是组合两个集合的另一种方式。两个集合的交集不是“或”运算,而是“和”运算。结果集的元素是两个集合中的元素。而且,作为一种“与”操作,我们使用&操作人员[1,2,3]和;[3,4,5]只是[3]。

最后,另一种“组合”两个集合的方法是利用它们的差异。两个集合的差异是第一个集合中不在第二个集合中的所有对象的集合。所以[1,2,3]-[3,4,5]是[1,2]。

拉链

最后,还有“压缩”。两个数组可以以一种非常独特的方式压缩在一起。最好先展示一下,然后再解释。[1,2,3].zip([3,4,5])的结果是[[1,3],[2,4],[3,5]]。那么这里发生了什么?这两个数组合并在一起,第一个元素是两个数组第一个位置的所有元素的列表。拉链是一个有点奇怪的操作,你可能不会发现它有多大用处。其目的是组合两个元素密切相关的数组。

  • 发表于 2021-09-12 07:29
  • 阅读 ( 216 )
  • 分类:编程

你可能感兴趣的文章

红宝石(ruby)和python(python)的区别

...。闭包具有从外部作用域读取和写入变量的权限。Ruby有数组、哈希等数据类型。 rubyonrails是一个用Ruby编写的用于web开发的web框架。它很容易嵌入到超文本标记语言(HTML)中。Ruby还可以用于构建同时运行多个线程的多线程应用...

  • 发布于 2020-10-19 17:41
  • 阅读 ( 344 )

最适合新手的ruby互动介绍

...数字、字符串、属性和方法。 了解转换、数组、变量和其他方法。 查看打印、括号和字符串操作。 尝试一下方法链接、散列、键和值。 研究块、目录和方法参数。 ...

  • 发布于 2021-03-13 09:52
  • 阅读 ( 217 )

rubymonk通过交互式练习教你ruby编程语言

...接学习,以便您可以从任何地方参与。这些课程首先介绍数组,因此在开始学习之前,您可能需要掌握一些基本的编程知识。一旦你这样做了,RubyMonk是一个很好的学习方法,因为你实际上可以一边写代码一边学习。当你学习到...

  • 发布于 2021-05-27 17:53
  • 阅读 ( 182 )

数组(array)和c程序设计中的结构(structure in c programming)的区别

在C编程中,数组和结构的主要区别在于数组有助于存储相同类型的数据元素集合,而结构有助于将不同的数据类型存储为单个单元。 C是由贝尔实验室的dennisritchie开发的高级通用编程语言。它是最现代的编程语言的基础语言,...

  • 发布于 2021-07-01 12:48
  • 阅读 ( 229 )

数组表(arraylist)和c中的数组#(array in c#)的区别

在C#,array和ArrayList是最常用的数据类型。数组是C#编程语言的基本功能,而C#中的Arraylist是一个集合。Array和ArrayList都用于存储数据,对要存储的任何数据类型都没有限制。数组表(arraylist) vs. c中的数组#(array in c#)Array和ArrayList的...

  • 发布于 2021-07-07 11:47
  • 阅读 ( 298 )

数组(array)和c中的arraylist#(arraylist in c#)的区别

什么是数组(an array)? 数组是相似数据的连续集合,可以根据“索引”进行访问。它是最简单的数据结构类型,其中元素存储在一个连续的内存位置。 在数组中,索引从零开始,所以要访问数组的第一个元素“numarray”,应该...

  • 发布于 2021-07-08 17:54
  • 阅读 ( 187 )

ruby中的全局变量

...称$0反映了UNIX shell脚本中用于相同目的的命名约定。 $*-数组中的命令行参数,由$*(美元符号和星号)表示。例如,如果要运行./script.rb arg1 arg2,则$*将等效于%w{arg1 arg2}。这相当于特殊的ARGV数组,并且具有较少的描述性名称,...

  • 发布于 2021-09-05 06:00
  • 阅读 ( 177 )

在ruby中创建二维数组

...最终代码,请参见要点。 现在我们已经知道了算法将如何工作,是时候考虑一下该算法将处理的数据了。这里有两种主要的选择:某种平面阵列或二维阵列。每种方法都有各自的优点,但在做出决定之前,我们需要考虑一些...

  • 发布于 2021-09-23 15:30
  • 阅读 ( 279 )

在ruby中使用each方法

...方法。刚接触Ruby的程序员可以通过下面的简单示例了解如何将每个方法与数组和哈希一起使用。 在ruby中对数组对象使用each方法 首先,通过将数组指定给“stooges”来创建数组对象 >> stooges = ['Larry', 'Curly', 'Moe'] 接...

  • 发布于 2021-09-28 05:11
  • 阅读 ( 166 )

如何在ruby中使用循环(use loops in ruby)

...为了使用这些循环,甚至不需要了解闭包是什么或它们是如何工作的;事实上,他们被视为正常的循环,尽管在引擎盖下非常不同。 泰晤士报循环 times循环可以用于包含数字的任何变量,也可以用于数字本身。在下面的示例...

  • 发布于 2021-09-28 19:27
  • 阅读 ( 174 )
yanyan510
yanyan510

0 篇文章

相关推荐