Я работаю над программой, которая будет давать все комбинации списка значений без повторения. Не имеет значения, как результат сортируется до тех пор, пока оба варианта [10, 9, 8] и [8, 9, 10] невозможны. Пока у меня есть часть кода, которая делает то, что я хочу, но я бы хотел, чтобы результат был в формате списка, а не в кортежах. Она использует функцию unordered_tuples из библиотеки шалфея, но все, что делает это возвращает список списков как так:Список списков, а не список кортежей - python
>from sage.all import unordered_tuples
>tuples = unordered_tuples([10,9,8],2)
>print tuples
[[8, 8], [8, 9], [8, 10], [9, 9], [9, 10], [10, 10]]
И:
from itertools import product
def combos():
dicti = {}
index = 0
for entry in [1,0,1,0]:
dicIndex = str('0')+str(index)
print dicIndex
if entry == 0: dicti[dicIndex] = [[0]]
else: dicti[str('0')+str(index)] = unordered_tuples([10,9,8],entry)
index += 1
lis = ['00','01','02','03']
value = dicti[lis[0]]
print dicti
for index in lis[1:]:
value = product(value, dicti[index])
if index == lis[-1]:
print list(value)
print
Выход:
[((([8], [0]), [8]), [0]), ((([8], [0]), [9]), [0]), ((([8], [0]), [10]), [0]), ((([9], [0]), [8]), [0]), ((([9], [0]), [9]), [0]), ((([9], [0]), [10]), [0]), ((([10], [0]), [8]), [0]), ((([10], [0]), [9]), [0]), ((([10], [0]), [10]), [0])]
хотите:
[[[8], [0], [8], [0]], [[8], [0], [9], [0]], [[8], [0], [10], [0]], [[9], [0], [8], [0]], [[9], [0], [9], [0]], [[9], [0], [10], [0]], [[10], [0], [8], [0]], [[10], [0], [9], [0]], [[10], [0], [10], [0]]]
Я не понимаю ни ввода, ни выхода. –
Буду честно, я тоже. Один из моих коллег задал вопрос, и это именно то, что мне дали. Я спрошу ее завтра, чтобы сделать вопрос более понятным. – KevinShaffer