Не получается получить правильную комбинацию с помощью itertools - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь использовать itertools для получения комбинации, но я не получаю комбинации в нужном мне формате.

import itertools

dict = {(1,):1, (2,):3, (3,):1}
combo = list(itertools.combinations(dict.keys(),2))
print(combo)

Вывод:

[(('1',), ('2',)), (('1',), ('3',)), (('2',), ('3',))]

Вывод Я хочу:

[('1','2',), ('1','3',),('2','3',)]

1 Ответ

0 голосов
/ 13 марта 2020

Выход ожидается, так как ваши ключи dict являются кортежами. Вы можете попробовать следующее:

>>> combo = list(itertools.combinations((key[0] for key in dict.keys()), 2))
>>> print(combo)
[(1, 2), (1, 3), (2, 3)]

Это извлечет первый ([0]) элемент из каждого ключа.

...