2012-12-18 7 views
15
def enumerate(arr): 
    (0..arr.length - 1).to_a.zip(arr) 

Czy jest coś do tego stworzone? Nie musi mieć niezmiennych członków, musi znajdować się w standardowej bibliotece. Nie chcę być facetem, który podklasy klasy Array dodać funkcję Python do projektu.Wyliczenie Pythona w Ruby?

Czy w Ruby ma inną nazwę?

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

Odpowiedz

16

Coś takiego w Pythonie:

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

staje się to w Ruby:

a = %w(do re mi fa) 
a.each_with_index do |s,i| 
    puts "#{s} at index #{i}" 
end 
+1

'a =„do re mi fa ".split()" może być bliższe wersji Ruby – Antimony

4

Może szybciej rozwiązaniem byłoby:

%w(a b c).map.with_index {|x, i| [i, x] } 
+0

Hej ... to wygląda lepiej ";)'. – Droogans