Python 简单嵌套循环的失败

Python 简单嵌套循环的失败,python,loops,Python,Loops,我正在实现一个嵌套的for循环,其内部for循环是关于通过组合进行循环。然而,我不明白为什么这不起作用 import numpy as np from itertools import combinations comb = combinations(range(0, 3), 2) for i in range(0, 2): for j in comb: print(i, j) 输出为: 0 (0, 1) 0 (0, 2) 0 (1, 2) 它没有循环外部循环…但是,

我正在实现一个嵌套的for循环,其内部for循环是关于通过组合进行循环。然而,我不明白为什么这不起作用

import numpy as np
from itertools import combinations
comb = combinations(range(0, 3), 2)
for i in range(0, 2):
    for j in comb:
        print(i, j)
输出为:

0 (0, 1)
0 (0, 2)
0 (1, 2)
它没有循环外部循环…但是,如果它不是组合,它将按预期工作

for i in range(0, 2):
    for j in range(0, 2):
        print(i, j)
结果是:

0 0
0 1
1 0
1 1

我是否遗漏了组合的一些重要属性?我不明白为什么这不起作用……很抱歉,如果这是一个愚蠢的问题,任何帮助都将不胜感激,谢谢。

您可以先转换为列表

from itertools import combinations
comb = list(combinations(range(0, 3), 2))
for i in range(0, 2):
    for j in comb:
        print(i, j)
结果

0 (0, 1)
0 (0, 2)
0 (1, 2)
1 (0, 1)
1 (0, 2)
1 (1, 2)

我想你要找的不是
组合
,而是
产品
。下面的代码应该可以工作

from itertools import product
prod = product(range(0, 2), repeat = 2)
for i, j in prod:
    print(i, j)
输出:

0 0
0 1
1 0
1 1

您已经在第一次调用中耗尽了
组合
迭代器loop@AndrewAllen谢谢你的帮助,这是否意味着我应该在每个循环中创建组合?我不明白你的问题是什么。请你将预期的
输入
输出
添加到问题中。我的目标是在每个循环中重复使用
组合
,andrew回答了我的问题!谢谢你们,伙计,非常感谢!我以前不知道迭代器可能会耗尽。没有问题,你也可以对j进行组合(范围(0,3),2):并跳过
comb
定义非常感谢你的回答,它实际上也很有用。但在我的应用程序中,组合更适合我的需要:D