是否有可能使这个循环更简单?

Is it possible to make this loop simpler?

p1p2p3 的重复让我很烦。

y.zip(r, q).each { |p1, p2, p3|
  puts '%5s %5s | %3s' % [p1, p2, p3]
}

也许有 map 的解决方案?有没有办法直接将变量插入字符串而不是使用这种格式?

y.zip(r, q).each {|*p| puts '%5s %5s | %3s' % p}

zip数组的每个元素都是一个数组,你可以只使用整个数组

y.zip(r, q).each {|p| puts '%5s %5s | %3s' % p}