1

代码:

arr = [[1,2,3],[4,5,6],[7,8,9]]
a=0
b=0
while b <= 2
    a=0
    while a <= 2
    print arr[a][b]
    a+=1
    end
b+=1
puts " "
end

输出:

147
258
369

有没有更快的方法来达到同样的结果?

我只是一个初学者,所以不要让它太有。

4

3 回答 3

1

您可以puts为每一行使用。

arr.transpose.each{|l| puts "#{l.join} "}

会给出与您相同的结果,但也许您想要

arr.transpose.each{|l| puts l.join}
于 2013-07-16T06:55:24.710 回答
1

是的,使用#join方法:

print arr.transpose.map { |a| a.join('') }.join(' ')

或者如果每个值应该在不同的行,那么你可以写

puts arr.transpose.map { |a| a.join('') }
于 2013-07-16T06:41:34.377 回答
1

这应该这样做:

arr = [[1,2,3],[4,5,6],[7,8,9]]
puts arr.transpose.map(&:join).join(' ')
# => 147 258 369
于 2013-07-16T06:42:29.150 回答