7

Pythonでは、「ジャンプステップ」で配列をスライスできます。例:

In [1]: a = [1,2,3,4,5,6,7,8,9] 

In [4]: a[1:7:2] # start from index = 1 to index < 7, with step = 2
Out[4]: [2, 4, 6]

ルビーはできるの?

4

3 に答える 3

7
a = [1,2,3,4,5,6,7,8,9]
a.values_at(*(1...7).step(2)) - [nil]
#=> [2, 4, 6] 

上記の場合、- [nil]パーツは必要ありませんが、範囲が配列のサイズを超える場合にのみ機能します。そうでない場合は、次のようになります。

a = [1,2,3,4,5,6,7,8,9]
a.values_at(*(1..23).step(2))
#=> [2, 4, 6, 8, nil, nil, nil, nil, nil, nil, nil, nil]
于 2013-04-26T08:58:10.263 に答える
3

ruby で同じ出力を得るには:

a = [1,2,3,4,5,6,7,8,9]
(1...7).step(2).map { |i| a[i] }
=> [2, 4, 6] 
于 2013-04-26T09:20:34.473 に答える