使用 i 和 k 值迭代 Ruby 上的列表
Iteration over a list on Ruby with i and k values
我在 ruby 中找不到此代码的优雅解决方案。基本上我想做的是用 c++
for (int i=0;i<list.length;i++)
{for(int k= i+1; k<list.length; k++)
{cout<< list[i]<<" "<<list[k]}}
但不幸的是,我在 ruby 中找不到一种优雅的方式来做到这一点。有人可以帮我解决这个问题吗?
下面的代码未经测试,但应该可以。
list.each_with_index do |el1, idx|
list.drop(idx+1).each do |el2|
print [el1, el2].join(" ")
end
end
这是将您的 cpp 代码精确地逐行翻译为 ruby。
mudasobwa的回答比较直译,但是用dedicated的方式比较地道,Array#combination
:
list.combination(2) do |el1, el2|
puts "#{el1} #{el2}"
end
我在 ruby 中找不到此代码的优雅解决方案。基本上我想做的是用 c++
for (int i=0;i<list.length;i++)
{for(int k= i+1; k<list.length; k++)
{cout<< list[i]<<" "<<list[k]}}
但不幸的是,我在 ruby 中找不到一种优雅的方式来做到这一点。有人可以帮我解决这个问题吗?
下面的代码未经测试,但应该可以。
list.each_with_index do |el1, idx|
list.drop(idx+1).each do |el2|
print [el1, el2].join(" ")
end
end
这是将您的 cpp 代码精确地逐行翻译为 ruby。
mudasobwa的回答比较直译,但是用dedicated的方式比较地道,Array#combination
:
list.combination(2) do |el1, el2|
puts "#{el1} #{el2}"
end