25
def enumerate(arr):
    (0..arr.length - 1).to_a.zip(arr)

このために何かが組み込まれていますか?メンバーを不変にする必要はなく、標準ライブラリにある必要があります。プロジェクトにPython機能を追加するためにArrayクラスをサブクラス化する人にはなりたくありません。

Rubyでは別の名前が付いていますか?

%w(a b c).enumerate
=> [[0, "a"], [1, "b"], [2, "c"], [3, "d"]] 
4

4 に答える 4

34

Pythonではこのようなもの:

a = ['do', 're', 'mi', 'fa']
for i, s in enumerate(a):
    print('%s at index %d' % (s, i))

Rubyではこれになります:

a = %w(do re mi fa)
a.each_with_index do |s,i|
    puts "#{s} at index #{i}"
end
于 2012-12-18T16:10:13.307 に答える
8

それが列挙用であると仮定すると、それeach_with_indexを行うことができます。または、をお持ちの場合はEnumerator、を使用してwith_indexください。

于 2012-12-18T16:08:49.870 に答える
7

たぶん、より迅速な解決策は次のようになります:

%w(a b c).map.with_index {|x, i| [i, x] }
于 2012-12-18T16:18:46.030 に答える
2

楽しいもの!

a = %w(do re mi fa)
a.length.times.zip a
于 2020-11-20T15:20:21.520 に答える