代码:
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
是否有更快的方法可以达到相同的效果?
我只是一个初学者,所以不要太过分了。
答案 0 :(得分:1)
是的,使用#join
方法:
print arr.transpose.map { |a| a.join('') }.join(' ')
或者如果每个值应该在不同的行中,那么你可以写
puts arr.transpose.map { |a| a.join('') }
答案 1 :(得分:1)
这应该做:
arr = [[1,2,3],[4,5,6],[7,8,9]]
puts arr.transpose.map(&:join).join(' ')
# => 147 258 369
答案 2 :(得分:1)
您可以为每一行使用puts
。
arr.transpose.each{|l| puts "#{l.join} "}
会得到与你相同的结果,但也许你想要
arr.transpose.each{|l| puts l.join}