порядок последовательности питона с необязательными значениями - PullRequest
0 голосов
/ 19 ноября 2018

Нужна помощь в создании кода для создания всех возможных последовательностей на основе постоянных и необязательных значений. Пример ...

Последовательности сохраняются в БД MySQL, и каждое значение может быть необязательным

Таким образом, есть последовательность, например, которая возвращает следующий порядок

1,2,3,4

1 & 2 требуется 3 и 4 являются необязательными

Таким образом, результат вернет следующие возможности последовательности: [1,2], [1,2,3,4], [1,2,3], [1,2,4]

Тогда я мог бы сравнить последовательность с таковой, чтобы убедиться, что полученная последовательность соответствует порядку, который должен.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 19 ноября 2018

Вы на самом деле заинтересованы только в надмножестве «необязательной» последовательности.Вы можете получить свой вывод, найдя этот надмножество и добавив каждого из его членов в «обязательный» список.

from itertools import combinations

required = [1, 2]
optional = [3, 4]

superset_optional = [combinations(optional, i) for i in range(len(optional) + 1)]
for combinations in superset_optional:
    for comb in combinations :
        print(required + list(comb))

#  [1, 2]
#  [1, 2, 3]
#  [1, 2, 4]
#  [1, 2, 3, 4]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...