Tag: 数组

合并哈希数组

我有两个数组,每个数组都包含属性哈希的数组。 Array1 => [[{attribute_1 = A}, {attribute_2 = B}], [{attribute_1 = A}, {attribute_4 = B}]] Array2 => [{attribute_3 = C}, {attribute_2 = D}], [{attribute_3 = C, attribute_4 = D}]] 数组中的每个数组都保存对象的属性哈希值。 在上面的例子中,我正在使用两个对象。 每个数组中有两个属性用于两个对象中的每一个。 如何合并这两个数组? 我试图获得一个’对象’数组的单个数组(从一开始就没有办法获得单个数组,因为我必须进行两次不同的API调用才能获得这些属性)。 DesiredArray => [[{attribute_1 = A, attribute_2 = B, attribute_3 = C, attribute_4 = D}], [{attribute_1 = A, attribute_2 = B, attribute_3 […]

在Python中复制数组/列表的有效方法

注意:我是一名Ruby开发人员,试图在Python中找到自己的方式。 当我想弄清楚为什么有些脚本使用mylist[:]而不是list(mylist)来复制列表时,我对各种方法进行了快速基准测试以复制range(10) (参见下面的代码)。 编辑:我更新了测试以使用Python的timeit ,如下所示。 这使得无法直接将它与Ruby进行比较,因为timeit不考虑Ruby的Benchmark所做的循环,因此Ruby代码仅供参考 。 Python 2.7.2 Array duplicating. Tests run 50000000 times list(a) 18.7599430084 copy(a) 59.1787488461 a[:] 9.58828091621 a[0:len(a)] 14.9832749367 作为参考,我也在Ruby中编写了相同的脚本: Ruby 1.9.2p0 Array duplicating. Tests 50000000 times user system total real Array.new(a) 14.590000 0.030000 14.620000 ( 14.693033) Array[*a] 18.840000 0.060000 18.900000 ( 19.156352) a.take(a.size) 8.780000 0.020000 8.800000 ( 8.805700) a.clone 16.310000 […]

任何人都可以向我解释这个数组声明吗?

只是想知道数组中最后一个逗号的存在之间的区别,如果有的话 >> [1,2,3] => [1, 2, 3] >> [1,2,3,] => [1, 2, 3] 第二个数组仍然有效,没有例外 谢谢

删除“重复对象”

假设我有一个来自同一个类的对象数组,这里有两个值得关注的属性:name和created_at。 如何在数组中找到具有相同名称的对象(被视为重复),然后删除数据库中的重复记录。 但是,具有最新created_at日期的对象是必须删除的对象。

Ruby:基于整数数组对对象数组进行排序

这看起来很简单,之前应该问过,但我在Stack Overflow上找到的所有内容似乎都不起作用。 我有一个包含4个对象的数组,我想按特定顺序重新排序。 所以,它看起来像这样: array = [Obj1, Obj2, Obj3, Obj4] 我有另一个整数数组,代表索引的所需顺序: desired_order = [2,3,0,1] 所以在正确排序array之后我想看到的是: array = [Obj3, Obj4, Obj1, Obj2] 我已经想过sort_by是要使用的方法,但我似乎无法提出正确的语法。 任何帮助是极大的赞赏!

理解`sort!`块

现在我有一个arrays letter = [‘a’,’b’,’c’,’a’,’b’,’c’,’a’,’b’,’b’] 有人可以解释以下返回值吗? letter.sort! { |x| letter.count(x) } #=> [“b”, “b”, “a”, “c”, “c”, “a”, “b”, “b”, “a”]

如何有效地提取Ruby数组中的重复元素?

我有一个类似[1,1,1,2,4,6,3,3]的数组,我希望得到重复元素的列表,在本例中为[1,3]。 我写了这个: my_array.select{|obj|my_array.count(obj)>1}.uniq 但它的效率很低(o(n²))。 你有更好的主意吗? 如果可能简洁。 谢谢

Ruby-在O(log n)运行时从sorted(唯一)数组中删除一个值

我有一个排序数组(唯一值,不重复)。 我知道我可以使用Array#binarysearch但它用于查找值而不是删除它们。 我也可以删除O(log n)的值吗? 怎么样? 让我说我有这个数组: arr = [-3, 4, 7, 12, 15, 20] #very long array 我想删除值7.到目前为止,我有这个: arr.delete(7) #I’m quite sure it’s O(n) 假设Array#delete-at在O(1) 处工作。 我可以做arr.delete_at(value_index)现在我只需要获取值的索引。 二进制搜索可以做到这一点,因为数组已经排序。 但是利用排序属性(我所知道的)的唯一方法是二进制搜索,它返回值,而不是删除或返回索引。 把它们加起来: 1)如何在O(log n)处从已排序的非重复数组中删除值? 要么 2)假设数组#lele-at在O(1) 处工作(是吗?),如何在O(log n)处获取值的索引? (我的意思是数组已经排序了,我必须自己实现吗?) 谢谢。

分配给数组并替换出现的nil值

问候! 如下所示为数组赋值时,如何将nil s替换为0 ? array = [1,2,3] array[10] = 2 array # => [1, 2, 3, nil, nil, nil, nil, nil, nil, nil, 2] 如果在分配时不可能,我将如何以最佳方式进行分配? 我想到了array.map { |e| e.nil? ? 0 : e } array.map { |e| e.nil? ? 0 : e } array.map { |e| e.nil? ? 0 : e } ,但是…… 谢谢!

如何将此Ruby String转换为数组?

将以下Ruby String转换为数组的最佳方法是什么(我使用的是ruby 1.9.2 / Rails 3.0.11) Rails控制台: >Item.first.ingredients => “[\”Bread, whole wheat, 100%, slice\”, \”Egg Substitute\”, \”new, Eggs, scrambled\”]” >Item.first.ingredients.class.name => “String” >Item.first.ingredients.length 77 所需的输出: >Item.first.ingredients_a [“Bread, whole wheat, 100%, slice”, “Egg Substitute”, “new, Eggs, scrambled”] >Item.first.ingredients_a.class.name => “Array >Item.first.ingredients_a.length => 3 如果我这样做,例如: >Array(Choice.first.ingredients) 我明白了: => [“[\”Bread, whole wheat, 100%, slice\”, \”Egg Substitute\”, \”new, Eggs, […]