【问题标题】:for loop vectors of vector in julia朱莉娅中向量的for循环向量
【发布时间】:2022-07-20 22:19:56
【问题描述】:
  • 第一个问题

假设

b=[  [1,[2,3,4]], [4,[-2,1,0]]  ]

for i in 1:length(b)
   for a in b[i][2]
     print(a)
   end
end

我收到2 3 4 -2 1 0

而不是[2,3,4] ; [-2,1,0]

  • 第二个问题

为什么下面的代码会出错 [a for a in b[i][2] for i in 1:length(b)]

UndefVarError: 我没有定义

【问题讨论】:

    标签: julia nested-for-loop


    【解决方案1】:

    对于第一个问题,

    b=[  [1,[2,3,4]], [4,[-2,1,0]]  ]
    
    for i in 1:length(b)
       for a in b[i][2]
         print(a)
       end
    end
    

    您正在内部循环中迭代b[i][2],因此您可以按预期从[2,3,4][-2,1,0] 中获取元素。相反,您应该 println(b[i][2]) 并删除内部循环。

    更好的循环是:

    for (i,j) in b
        println(j)
    end
    

    对于第二个问题,

    [a for a in b[i][2] for i in 1:length(b)]
    

    循环的顺序颠倒了,因为a 循环依赖于i 循环。您可以通过以下两种方式之一修复它,

    [a for i in 1:length(b) for a in b[i][2]]
    # OR
    [[a for a in b[i][2]] for i in 1:length(b)]
    

    如果您想要与第一个问题相同的答案但使用数组理解,则可以这样做:

    [j for (i,j) in b]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-31
      相关资源
      最近更新 更多