Как генерировать комбинации с повторением только одного элемента с использованием Python

Исправлена ​​ошибка, с которой вы ссылаетесь (ошибка 4787391) была исправлена ​​на Java 8. Даже если вы используете более старую версию Java, подход System.getProperty("user.home"), вероятно, по-прежнему остается лучшим. Подход user.home, похоже, работает в очень большом числе случаев. 100% пуленепробиваемое решение в Windows сложно, потому что Windows имеет смещающуюся концепцию того, что означает домашний каталог. Если user.home недостаточно хорош для вас, я бы предложил выбрать определение home directory для окон и использовать его, получив соответствующую переменную среды с помощью System.getenv(String).

5
задан Molly Zhou 23 March 2019 в 08:37
поделиться

1 ответ

В модуле itertools есть функция: itertools.product . Он делает именно то, что вам нужно.

Пример:

a = [None,1,2]
list(itertools.product(a, repeat=3))

[(None, None, None),
 (None, None, 1),
 (None, None, 2),
 (None, 1, None),
 (None, 1, 1),
 (None, 1, 2),
 (None, 2, None),
 (None, 2, 1),
 (None, 2, 2),
 (1, None, None),
 (1, None, 1),
 (1, None, 2),
 (1, 1, None),
 (1, 1, 1),
...

Ваша проблема может быть решена с помощью этого кода:

[list(zip(a, elem))for elem in itertools.product(b, repeat=3)]

0
ответ дан vurmux 23 March 2019 в 08:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: