Tag: 数组

Ruby,如何将一个数组混合到另一个数组中

两个arrays: a1 = [“a”, “b”, “c”, “d”, “e”, “f”] a2 = [1, 2, 3] 如何将a2插入a1 ,保持a2顺序但是在a1的 随机索引中?

在随机位置的ruby中压缩2个数组

有没有一种简单的方法可以在随机位置压缩2个数组并保持原始顺序 ? 例如 a=[0,1,2,3,4,5,6,7,8,9,10] b=[“one”,”two”,”three”,”four”] 和随机数从0到5与rand(5) zipped = [0,”one”,1,2,3,”two”,4,”three”,5,6,7,8,”four”,9,10] 并且随机序列将是1,3,1,4作为将“b”的每个元素“压缩”到a的位置 我能做的最好的是 i=0 merged=a b.each do |x| rnd = rand(5) merged.insert(i+rnd,x) i=i+rnd end

难以修改二维rubyarrays

请原谅新手问题。 我正在尝试在ruby中创建一个二维数组,并将其所有值初始化为1.我的代码正在创建二维数组,但无法修改其任何值。 谁能解释我做错了什么? def mda(width,height) #make a two dimensional array a = Array.new(width) a.map! { Array.new(height) } #init all its values to 1 a.each do |row| row.each do |column| column = 1 end end return a end

我可以更快地制作这个Ruby代码和/或使用更少的内存吗?

我在Ruby中有一个String对象Array ,它们由下面的单词组成: animals = [“cat horse”, “dog”, “cat dog bird”, “dog sheep”, “chicken cow”] 我想将其转换为另一个String对象Array ,但每个元素只有一个动物,只有唯一的元素。 我找到了一种方法,如下所示: class Array def process() self.join(” “).split().uniq end end 但是,如果输入数组是巨大的,让我们说数百万个条目然后执行这将是非常糟糕的因为我将创建一个巨大的字符串,然后一个巨大的数组然后uniq必须处理该巨大的数组以删除重复的元素。 我考虑加快速度的一种方法是为每个单词创建一个带有条目的Hash ,这样我只会在第一遍中处理每个单词一次。 有没有更好的办法?

在ruby中创建哈希数组

我想在ruby中创建一个哈希数组: arr[0] “name”: abc “mobile_num” :9898989898 “email” :abc@xyz.com arr[1] “name”: xyz “mobile_num” :9698989898 “email” :abcd@xyz.com 我见过哈希和数组文档。 在我发现的所有内容中,我必须做类似的事情 c = {} c[“name”] = “abc” c[“mobile_num”] = 9898989898 c[“email”] = “abc@xyz.com” arr << c 循环中的上述语句中的迭代允许我填充arr 。 我实际上有一行像[“abc”,9898989898,”abc@xyz.com”] 。 有没有更好的方法来做到这一点?

如何在Ruby中编写“if in”语句

我正在寻找像Python这样的if-in语句用于Ruby。 基本上,如果an_array中的x 这是我正在处理的代码,其中变量“line”是一个数组。 def distance(destination, location, line) if destination and location in line puts “You have #{(n.index(destination) – n.index(location)).abs} stops to go” end end

在Ruby中按字母顺序对数组进行排序,但最后使用大写单词

我试图在Ruby中按字母顺序对字符串进行排序。 问题是,它将大写单词放在字符串的开头,但我最后想要它们。 我原来的字符串是: [“Apple”, “banana”, “Zebra”, “orange”] 我想要的: [“banana”, “orange”, “Apple”, “Zebra”]

如何为二维数组指定默认值?

我有一个像这样创建的二维数组: array = Array.new(10){Array.new(10)} 如何在初始化时为每个单元格分配默认值? 我知道我可以用两个嵌套的each循环做到这一点,但我想知道是否还有另一种方法?

Ruby:如何找到2个数组之间的差异,订购问题

我正在尝试计算订单有效的两个数组之间的差异。 例如: array_one = [“A”, “B”, “C”] array_two = [“B”, “C”, “A”] 这将产生3个差异,因为: array_one[0] != array_two[0] array_one[1] != array_two[1] array_one[2] != array_two[2] 另一个例子: array_one = [“Z”, “X”, “Y”] array_two = [“Z”, “W”, “Y”] 这将产生1,因为: array_one[0] == array_two[0] array_one[1] != array_two[1] array_one[2] == array_two[2] 任何建议都非常感谢。

如何在散列数组中找到由多个键分组的最大值?

有这种结构的数据。 将按’c’按升序排列。 [ { ‘a’ => 1, ‘b’ => 1, ‘c’ => 1, ‘d’ => ‘?’ }, { ‘a’ => 1, ‘b’ => 1, ‘c’ => 2, ‘d’ => ‘?’ }, { ‘a’ => 1, ‘b’ => 1, ‘c’ => 3, ‘d’ => ‘?’ }, { ‘a’ => 1, ‘b’ => 2, ‘c’ => 4, […]