Отказ простой вложенной петли - PullRequest
1 голос
/ 18 мая 2019

Я реализую вложенный цикл 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

Мне не хватает некоторых важных свойств комбинаций? Я не мог понять, почему это не работает ... извините, если это глупый вопрос, любая помощь будет принята с благодарностью, спасибо.

Ответы [ 2 ]

1 голос
/ 18 мая 2019

Вы можете сначала преобразовать в список

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)
0 голосов
/ 18 мая 2019

Я думаю, что вы ищете не combination, а product.Приведенный ниже код должен работать.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...