【问题标题】:Is there a skip parameter in Julia's range?Julia 的范围内是否有跳过参数?
【发布时间】:2017-02-07 08:14:53
【问题描述】:

在 Python 中,我们可以使用 for 循环进行迭代,并使用 skip 参数跳过索引:

max_num, jump = 100, 10
for i in range(0, max_num, jump):
    print (i)

我可以通过这样做使用while循环来达到同样的效果:

max_num, jump = 100, 10
i = 0
while i < max_num
    print(i)
    i+=jump
end

并且在 for 循环中使用下面显示的相同 i+=jump 语法不会跳过索引:

for i in range(0,max_num)
    print(i)
    i+=jump
end

在 for 循环中是否可以“跳过”?如果可以,怎么做?

【问题讨论】:

    标签: python for-loop range julia skip


    【解决方案1】:

    你可以这样做

    max_num, step = 100, 10
    
    for i in 0:step:max_num
        println(i)
    end
    

    使用 range(),您无需指定 max_num,而是指定所需的迭代次数。所以0:step:max_num 等于range(0, step, max_num/step)

    【讨论】:

      【解决方案2】:

      Julia 中的语法有点不同。

      它是 range(start, [step,]length) ,例如

      for i in range(0, 3, 10)
         println(i)
      end
      

      [出]:

      0
      3
      6
      9
      12
      15
      18
      21
      24
      27
      

      还有另一种语法start:step:max_num 请参阅@Sayse 对详细信息的回答

      【讨论】:

      • 啊,我是range(start, step, end)
      【解决方案3】:

      您在您的第一个片段中执行此操作(在 range 中定义它)。除此之外,您还必须使用模数

      for i in range(0,max_num):
          if(i % jump != 0):
              continue
          print(i)
      

      【讨论】:

      • 使用模数将遍历所有max_num 个循环,在每次迭代时检查模数,对吗?
      • @NatGillin - 没错,它首选使用范围
      【解决方案4】:

      start:jump:end

      例子:

      a = 0:10:100
      

      你可以循环使用:

      for a in 0:10:100
        println(a)
      end
      

      【讨论】:

        猜你喜欢
        • 2012-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-11
        相关资源
        最近更新 更多