2024-03-28 21:45:11 发布
网友
如何将这段代码转换成Ruby,包括反向数组迭代而不是索引?你知道吗
out = 0 for index,x in enumerate(reversed(d)): out += x*pow(2,index)
从Python代码中我可以理解,数组d是反转的,但是元素的索引不是?扭曲! 如何在Ruby中实现这一点?你知道吗
d
考虑Python中的下一个输出:
for index, string in enumerate(reversed(['zero', 'one', 'two'])): print index, string # 0 two # 1 one # 2 zero
然后可以在应用枚举数之前使用reverse,在本例中是each,因此,它将把数组作为['two', 'one', 'zero'],并且每个迭代的索引将保持不变:
reverse
each
['two', 'one', 'zero']
['zero', 'one', 'two'].reverse.each_with_index do |word, index| puts "#{index} #{word}" end # 0 two # 1 one # 2 zero
Ruby中Python代码片段的等效形式是:
d.reverse_each.with_index.inject(0) do |out, (x,i)| out += x * 2**i end
考虑Python中的下一个输出:
然后可以在应用枚举数之前使用
reverse
,在本例中是each
,因此,它将把数组作为['two', 'one', 'zero']
,并且每个迭代的索引将保持不变:Ruby中Python代码片段的等效形式是:
相关问题 更多 >
编程相关推荐