Tag: arrays

数组包含来自另一个数组的任何值?

什么是最好,最优雅/有效的方法来testing一个数组是否包含第二个数组中的元素? 下面两个例子试图回答这个问题:“食物”包含“奶酪”中的任何元素: cheeses = %w(chedder stilton brie mozzarella feta haloumi) foods = %w(pizza feta foods bread biscuits yoghurt bacon) puts cheeses.collect{|c| foods.include?(c)}.include?(true) puts (cheeses – foods).size < cheeses.size

检查数组不是空的:任何?

用数组来检查一个数组是否为空是不是很糟糕any? 方法? a = [1,2,3] a.any? => true a.clear a.any? => false 或者是否更好使用, unless a.empty? ?

Ruby数组:%w vs%W

有什么不同?

Ruby:如何查找并返回数组中的重复值?

arr是string数组,例如: ["hello", "world", "stack", "overflow", "hello", "again"] 。 什么是简单和优雅的方式来检查arr是否有重复,如果是的话,返回其中的一个(不pipe是哪一个)。 例子: ["A", "B", "C", "B", "A"] # => "A" or "B" ["A", "B", "C"] # => nil

数组哈希ruby

好吧,所以这里的交易,我一直在search谷歌寻找解决办法,虽然有很多外面,他们似乎没有做我正在寻找的工作。 基本上我有一个这样的数组结构 ["item 1", "item 2", "item 3", "item 4"] 我想把它转换成一个哈希,所以它看起来像这样 { "item 1" => "item 2", "item 3" => "item 4" } 即“偶数”索引上的项是键,“奇数”索引上的项是数值。 任何想法如何做到这一点干净? 我想蛮力的方法是把所有的偶数索引都放到一个单独的数组中,然后在它们周围循环来添加值。

如何在哈希中通过散列值在散列数组中进行search?

我有一个哈希数组,@fathers。 a_father = { "father" => "Bob", "age" => 40 } @fathers << a_father a_father = { "father" => "David", "age" => 32 } @fathers << a_father a_father = { "father" => "Batman", "age" => 50 } @fathers << a_father 我怎样才能search这个数组,并返回一个块返回true的散列数组? 例如: @fathers.some_method("age" > 35) #=> array containing the hashes of bob and batman 谢谢。

如何从数组中删除空白元素?

我有以下数组 cities = ["Kathmandu", "Pokhara", "", "Dharan", "Butwal"] 我想从数组中删除空白元素,并希望得到以下结果: cities = ["Kathmandu", "Pokhara", "Dharan", "Butwal"] 有什么办法像compact ,将做到没有循环?

我如何从数组中随机select?

我想知道是否有更干净的方法来做到这一点。 基本上,我想从一个可变长度的数组中随机select一个元素。 通常情况下,我会这样做: myArray = ["stuff", "widget", "ruby", "goodies", "java", "emerald", "etc" ] item = myArray[rand(myarray.length)] 是否有更可读/更简单的replace第二行? 或者,这是最好的办法。 我想你可以做myArray.shuffle.first ,但是我只在几分钟前看过#shuffle ,所以我还没有真正使用它。

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

在Ruby中,给定一个以下forms之一的数组… [apple, 1, banana, 2] [[apple, 1], [banana, 2]] 什么是最好的方式将其转换为哈希forms… {apple => 1, banana => 2}

如何将可分配数组传递给Fortran中的子例程

下面的代码是返回一个分段错误,因为我试图通过的可分配数组没有被正确识别(大小返回1,当它应该是3)。 在这个页面(http://www.eng-tips.com/viewthread.cfm?qid=170599)一个类似的例子似乎表明它应该在F95中正常工作; 我的代码文件有一个.F90扩展名,但我试图将其更改为F95,我正在使用gfortran进行编译。 我的猜测是,问题应该以我将可分配数组传递给子例程的方式进行; 我究竟做错了什么? !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%! PROGRAM test !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%! IMPLICIT NONE DOUBLE PRECISION,ALLOCATABLE :: Array(:,:) INTEGER :: iii,jjj ALLOCATE(Array(3,3)) DO iii=1,3 DO jjj=1,3 Array(iii,jjj)=iii+jjj PRINT*,Array(iii,jjj) ENDDO ENDDO CALL Subtest(Array) END PROGRAM !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%! SUBROUTINE Subtest(Array) DOUBLE PRECISION,ALLOCATABLE,INTENT(IN) :: Array(:,:) INTEGER :: iii,jjj PRINT*,SIZE(Array,1),SIZE(Array,2) DO iii=1,SIZE(Array,1) DO jjj=1,SIZE(Array,2) PRINT*,Array(iii,jjj) ENDDO ENDDO END SUBROUTINE !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!