小编use*_*267的帖子

如何转置不同大小的红宝石阵列?

我有一个数组:

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)

ruby arrays transpose

9
推荐指数
2
解决办法
2674
查看次数

如何在Ruby中匹配中文单词?

我想匹配字符串中的中文单词,但失败了

\n\n
irb(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>\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

它出什么问题了?

\n\n

问题很奇怪,难道是字符编码的问题?

\n

ruby regex encoding chinese-locale

3
推荐指数
1
解决办法
1877
查看次数

用nil填充数组元素

我有这样一个数组:

[[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)

有更简单的方法吗?

ruby arrays

1
推荐指数
1
解决办法
170
查看次数

标签 统计

ruby ×3

arrays ×2

chinese-locale ×1

encoding ×1

regex ×1

transpose ×1