我有一个数组:
arr=[[1,2,3],[4,5],[6]],
Run Code Online (Sandbox Code Playgroud)
我有以下代码:
arr.transpose
Run Code Online (Sandbox Code Playgroud)
但它不起作用,如何解决?
我正进入(状态
[[1,2,3],[4,5],[6]].transpose
IndexError: element size differs (2 should be 3)
from (irb):13:in `transpose'
from (irb):13
from /home/durrant
Run Code Online (Sandbox Code Playgroud)
我的解决方案
arr.reduce(&:zip).map(&:flatten)
Run Code Online (Sandbox Code Playgroud)
输出:
[[1, 4, 6], [2, 5, nil], [3, nil, nil]]
Run Code Online (Sandbox Code Playgroud) 我想匹配字符串中的中文单词,但失败了
\n\nirb(main):016:0> "\xe8\xba\xab\xe9\xab\x98455478".scan(/\\p{Han}/)\nSyntaxError: (irb):16: invalid character property name {Han}: /\\p{Han}/\n from C:/Program Files/Ruby-2.1.0/bin/irb.bat:18:in `<main>\'\nRun Code Online (Sandbox Code Playgroud)\n\n它出什么问题了?
\n\n问题很奇怪,难道是字符编码的问题?
\n我有这样一个数组:
[[1,2],[2],[3,4,5,6],[7]]
Run Code Online (Sandbox Code Playgroud)
我想填充数组元素nil.我如何得到这个结果:
[[1,2,nil,nil],[2,nil,nil,nil],[3,4,5,6],[7,nil,nil,nil]]
Run Code Online (Sandbox Code Playgroud)
我试过了:
arr=[[1,2],[2],[3,4,5,6],[7]]
l=arr.max_by{|x|x.size}.size
arr.map{|x|x+[nil]* (l-x.size)}
Run Code Online (Sandbox Code Playgroud)
有更简单的方法吗?