Во-первых, плохо использовать list
в качестве имени переменной, так как это перезаписывает функцию list
по умолчанию.
В вашем первом рабочем примере вы передаете несколько аргументов itertools.product
, и он объединяет каждый аргумент, чтобы предоставить нужный вам результат. В вашем примере без работы вы передаете только один аргумент, кортеж test
. К счастью, вы можете использовать кортеж распаковку синтаксис языка Python для расширения каждого элемента кортежа в качестве аргумента:
test = ["this", "the"],["example", "test"],["is not", "isnt"],[" working", "correct"]
# The * before test unpacks the tuple into separate arguments
result2 = list(itertools.product(*test))
print(result2)
[('this', 'example', 'is not', ' working'), ('this', 'example', 'is not', 'correct'), ('this', 'example', 'isnt', ' working'), ('this', 'example', 'isnt', 'correct'), ('this', 'test', 'is not', ' working'), ('this', 'test', 'is not', 'correct'), ('this', 'test', 'isnt', ' working'), ('this', 'test', 'isnt', 'correct'), ('the', 'example', 'is not', ' working'), ('the', 'example', 'is not', 'correct'), ('the', 'example', 'isnt', ' working'), ('the', 'example', 'isnt', 'correct'), ('the', 'test', 'is not', ' working'), ('the', 'test', 'is not', 'correct'), ('the', 'test', 'isnt', ' working'), ('the', 'test', 'isnt', 'correct')]
Как получить itertools работать? – BradTheBrutalitist
@BradTheBrutalitist вы предлагаете мне добавить 'import itertools' в верхней части моего ответа? Это не было показано в оригинальных примерах, поэтому я предположил, что это подразумевается. В противном случае я не уверен, если я пойму вопрос, вы можете уточнить? – Marius
Нет, я просто говорю, что я очень люблю его. – BradTheBrutalitist