标签: nested-loops

在Python中嵌套相同生成器的实例

说我有一台发电机:

def mygen():
    for i in range(10):
        yield i
Run Code Online (Sandbox Code Playgroud)

这个工程,我所期望的:所有的组合ij

for i in mygen():
    for j in mygen():
        print i, j
Run Code Online (Sandbox Code Playgroud)

我认为这些是不同的例子.他们为什么不作为不同的实例?

g1 = mygen()
g2 = mygen()

for i in g1:
    for j in g2:
        print i, j
Run Code Online (Sandbox Code Playgroud)

如果我尝试g1.next(),我会收到一个错误,因为没有数据.

我正在运行Python 2.7.1.

python generator nested-loops

4
推荐指数
1
解决办法
128
查看次数

球拍/方案中的惯用嵌套循环

有没有人知道在一个范围内的数字上嵌套循环的惯用方法是什么?在Racket/Scheme中?在Python中我们有:

for i in range(numb1):
    for j in range(numb2):
Run Code Online (Sandbox Code Playgroud)

Racket/Scheme中的等价物是什么?

scheme range nested-loops racket

4
推荐指数
1
解决办法
874
查看次数

Itertools相当于嵌套循环"for x in xs:for y in ys ......"

我有一个嵌套循环来创建一组共轭动词中的所有组合.旨在获得动词,人和时态的所有可能组合,例如[['to be', 'first person singular', 'future'],['to be', 'second person singular', 'future'], ...].

for v in verbs:
    for p in persons:
        for t in tenses:
            return [v, p, t]
Run Code Online (Sandbox Code Playgroud)

有没有办法减少嵌套,也许使用itertools

python nested-loops python-itertools

4
推荐指数
2
解决办法
6193
查看次数

matlab:矢量化4D矩阵和

我需要在MATLAB中执行以下计算:

其中w和v是具有N个元素的向量,A是四维矩阵(N ^ 4个元素).这可以通过以下迂腐代码来实现:

N=10;
A=rand(N,N,N,N);
v=rand(N,1);
w=zeros(N,1);

for pp=1:N
  for ll=1:N
    for mm=1:N
      for nn=1:N
        w(pp)=w(pp)+A(pp,ll,mm,nn)*v(ll)*v(mm)*conj(v(nn));
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这是非常慢的.有没有办法在MATLAB中对这种求和进行矢量化?

performance matlab matrix vectorization nested-loops

4
推荐指数
1
解决办法
106
查看次数

为什么此循环返回的值为O(n log log n)而不是O(n log n)?

考虑以下C函数:

int fun1 (int n)
{
    int i, j, k, p, q = 0;

    for (i = 1; i<n; ++i)
    {
        p = 0;

        for (j=n; j>1; j=j/2)
            ++p;

        for (k=1; k<p; k=k*2)
            ++q;
    }
    return q;
}
Run Code Online (Sandbox Code Playgroud)

问题是要确定以下哪个最接近函数的返回值fun1

(A)n ^ 3
(B)n(logn)^ 2
(C)nlogn
(D)nlog(logn)

这是给出的解释:

int fun1 (int n)
{
    int i, j, k, p, q = 0;

    // This loop runs T(n) time 

    for (i = 1; i < n; ++i)
    {
        p = 0; …
Run Code Online (Sandbox Code Playgroud)

loops for-loop time-complexity nested-loops asymptotic-complexity

4
推荐指数
1
解决办法
351
查看次数

朱莉娅 - 继续外循环

我目前正在将一个算法从Java移植到Julia,现在我遇到了一个部分,当满足某些条件时,我必须从内循环继续外部循环:

 loopC: for(int x : Y){
            for(int i: I){
                if(some_condition(i)){
                    continue loopC;
                }                   
            }
        }
Run Code Online (Sandbox Code Playgroud)

我在GitHub上发现了一些关于这个主题的问题,但似乎只有关于它的讨论,还没有解决方案.有谁知道如何在朱莉娅实现这一目标?

nested-loops julia

4
推荐指数
1
解决办法
345
查看次数

如何在Ansible $ var中循环次数?

我想在Ansible中运行一个变量中定义的次数.这有可能吗?

想象一下服务器列表,我们想在每台服务器上创建一些编号文件.这些值在vars.yml中定义:

server_list:
  server1:
    name: server1
    os: Linux
    num_files: 3
  server2:
    name: server2
    os: Linux
    num_files: 2
Run Code Online (Sandbox Code Playgroud)

我想要的输出是文件/tmp/1,/tmp/2/tmp/3在server1 上创建,/tmp/1/tmp/2在server2上创建.我试图写用剧本with_nested,with_dict而且with_subelements但我似乎无法找到任何方式到这一点:

- hosts: "{{ target }}"

  tasks:

    - name: Load vars
      include_vars: vars.yml

    - name: Create files
      command: touch /tmp/{{ loop_index? }}
      with_dict: {{ server_list[target] }}
      loop_control:
        loop_var: {{ item.value.num_files }}
Run Code Online (Sandbox Code Playgroud)

如果我需要在每台服务器上创建50个文件,我可以看到如何为每个服务器创建一个列表变量,如果列表中包含50个项目,这只是数字1到50,但这将是一个自我击败Ansible的使用.

dictionary loops nested-loops ansible

4
推荐指数
1
解决办法
5871
查看次数

Terraform 0.12嵌套循环

我正在尝试使用Terraform 0.12的新功能来实现嵌套循环,以便遍历AWS IAM用户,每个用户都可以附加一个或多个策略。用于表示此列表的变量的类型为map(list(string)),看起来像这样:

{
  "user 1" = [ "policy1", "policy2" ],
  "user 2" = [ "policy1" ]
}
Run Code Online (Sandbox Code Playgroud)

通过可以轻松地创建用户列表keys(),但是由于Terraform当前没有嵌套循环资源创建的机制,因此策略附件必须以独立于每个用户的单个循环的形式发生。因此,我正在尝试从地图输入中构建一个user:policy关联列表,该列表看起来像基于上面的示例:

[
  [ "user1", "policy1" ],
  [ "user1", "policy2" ],
  [ "user2", "policy1" ]
]
Run Code Online (Sandbox Code Playgroud)

我正在尝试构造该列表并将其存储在本地变量中,如下所示,var.iam-user-policy-map输入映射在哪里:

locals {
  ...
  association-list = [
    for user in keys(var.iam-user-policy-map):
    [
      for policy in var.iam-user-policy-map[user]:
      [user, policy]
    ]
  ]
  ...
}
Run Code Online (Sandbox Code Playgroud)

但是,尝试访问该嵌套列表中的值时出现错误。我正在尝试使用引用local.association-list[count.index][0]和策略访问关联的用户部分local.association-list[count.index][1],但是在运行时terraform plan会出错:

Error: Incorrect attribute value type

  on main.tf line 27, in resource "aws_iam_user_policy_attachment" "test-attach": …
Run Code Online (Sandbox Code Playgroud)

nested-loops terraform

4
推荐指数
2
解决办法
4617
查看次数

Terraform - 迭代嵌套地图

我正在尝试使用资源 - google_bigquery_dataset_iam_binding 为 Bigquery 数据集创建 IAM 绑定。要求是我使用以下结构的变量读取此资源(dataset_id、role、members)中的参数 -

  bq_iam_role_bindings = {
    "member1" = {
      "dataset1" : ["role1","role2", "role5"],
      "dataset2" : ["role3","role2"],
    },
    "member2" = {
      "dataset3" : ["role1","role4"],
      "dataset2" : ["role5"],
    } 
  }
Run Code Online (Sandbox Code Playgroud)

所以,我需要遍历这个变量并为每个成员获取在数据集上分配的角色。这里创建的资源总数为 8 个(对于每个成员、每个数据集和每个角色)。我是 terraform 的新手,只了解如何在资源中的地图和 for_each 循环上应用简单的 for 循环。想了解我正在尝试做的事情怎么可能。

这是我发现的最接近的 -在 terraform 变量的地图中映射,我可以其中读取嵌套地图中的值,但在我的情况下我也需要提取键。任何人都可以在这里帮忙。

nested-loops nested-map terraform terraform-provider-gcp

4
推荐指数
1
解决办法
5757
查看次数

使用 std::ranges 摆脱嵌套的 for 循环

让我有一个代码:

for (auto& a : x.as)
{
    for (auto& b : a.bs)
    {
        for (auto& c : b.cs)
        {
            for (auto& d : c.ds)
            {
                if (d.e == ..)
                {
                    return ...
                }
            }
        }   
    }
}
Run Code Online (Sandbox Code Playgroud)

as, bs, cs, ds - 相应元素的 std::vector。

是否可以使用 std::ranges 将四个丑陋的循环转换为一个漂亮的单行表达式?

c++ nested-loops c++20 std-ranges

4
推荐指数
1
解决办法
106
查看次数