def enumerate(arr):
(0..arr.length - 1).to_a.zip(arr)
为此内置了什么?它不需要让它的成员不可变,它只需要在标准库中。我不想成为继承Array类的人来为项目添加Python功能。
Ruby中有不同的名称吗?
%w(a b c).enumerate
=> [[0, "a"], [1, "b"], [2, "c"], [3, "d"]]
答案 0 :(得分:23)
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
答案 1 :(得分:7)
假设它是枚举,each_with_index
可以做到这一点。或者如果您有Enumerator
,只需使用with_index
。
答案 2 :(得分:6)
也许更快的解决方案是:
%w(a b c).map.with_index {|x, i| [i, x] }
答案 3 :(得分:2)
一个有趣的人!
a = %w(do re mi fa)
a.length.times.zip a