Python在Ruby中的枚举?

Dro*_*ans 18 ruby python arrays enumerate

def enumerate(arr):
    (0..arr.length - 1).to_a.zip(arr)
Run Code Online (Sandbox Code Playgroud)

内置的东西是为了什么?它不需要让它的成员不可变,它只需要在标准库中.我不想成为继承Array类的人,为项目添加Python功能.

它在Ruby中有不同的名称吗?

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

snu*_*rre 24

Python中的这样的东西:

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

在Ruby中变成这样:

a = %w(do re mi fa)
a.each_with_index do |s,i|
    puts "#{s} at index #{i}"
end
Run Code Online (Sandbox Code Playgroud)


Ry-*_*Ry- 7

假设它是枚举,each_with_index可以做到这一点.或者,如果你有Enumerator,只需使用with_index.


Rai*_*dal 6

也许更快的解决方案是:

%w(a b c).map.with_index {|x, i| [i, x] }
Run Code Online (Sandbox Code Playgroud)