【问题标题】:iteration inside another iteration?在另一个迭代中迭代?
【发布时间】:2014-09-20 13:06:22
【问题描述】:

我正在尝试输出如下所示的数字集:

0,0
0,1
0,2
0,3
0,4
0,5
.
.
.
1,0
1,1
1,2
1,3
1,4
1,5
.
.
.

在将第一列从0 移动到第一列中的1 之前,我在迭代第二列时遇到问题。

我试过了:

(0..9).each do |num|
  number = num
  number_plus = num
  puts "#{number}, #{number_plus}"
  number_plus = num + 1
  puts "#{number}, #{number_plus}"
end

输出这个,更接近,但我仍然缺少与嵌套迭代器相关的内容:

0, 0
0, 1
1, 1
1, 2
2, 2
2, 3
3, 3
3, 4
4, 4
4, 5
5, 5
5, 6
6, 6
6, 7
7, 7
7, 8
8, 8
8, 9
9, 9
9, 10

任何指导都会很棒。

【问题讨论】:

  • [*0..9].permutation(2).each { |a, b| puts "#{a}, #{b}" }

标签: ruby iteration


【解决方案1】:

将第二次迭代放入第一次迭代是一种可能的解决方案:

(0..9).each do |num1|
  (0..9).each do |num2|
    puts "#{num1}, #{num2}"
  end
end

【讨论】:

  • 工作并且看起来很简单,现在我看到了这个例子。谢谢!
  • @sawa 我如何在这个迭代中反转一组数字?执行(9..0).each(0..9).reverse.each 似乎不是有效的方法?
  • @mann 转换为数组可以工作:(0..2).to_a.reverse.each
  • @mann 倒过来更容易:9.downto(0) do |num|... 当然,如果你想按正常顺序去:0.upto(9) do |num|...
猜你喜欢
  • 2023-03-17
  • 1970-01-01
  • 2013-06-17
  • 2012-10-23
  • 1970-01-01
  • 2018-09-23
  • 1970-01-01
  • 2015-09-20
  • 1970-01-01
相关资源
最近更新 更多