Форматирование печати из перестановок itertools - PullRequest
0 голосов
/ 20 июня 2020

Я понял из старого сообщения здесь, что невозможно распечатать результаты itertools.permutations, кроме как путем преобразования сначала в список. Вот что я сделал здесь:

import itertools

p = itertools.permutations('ABCD', 2)

print(list(p))

Я получаю следующий результат (в Jupyter Notebook):

[('A', 'B'), ('A', ' C '), (' A ',' D '), (' B ',' A '), (' B ',' C '), (' B ',' D '), (' ' C ',' A '), (' C ',' B '), (' C ',' D '), (' D ',' A '), (' D ',' B '), (' D ',' C ')]

Я взял исходный пример из itertools из docs. python .org . Раздел примера на этой странице показывает вывод как:

AB A C AD BA B C BD CA CB CD DA DB D C

На той же странице нет На самом деле объясните, как использовать itertools, импортировать модуль или как получить вывод, так что я также считаю, что, хотя он показывает этот вывод в удобном для чтения формате, он не был создан в коде, а просто набран таким образом?

В любом случае, есть ли способ настроить эту команду печати для создания того же формата, что и выше?

Спасибо за ваши комментарии и предложения.

Всего наилучшего. c

Ответы [ 2 ]

1 голос
/ 20 июня 2020

Вот что вы можете сделать:

import itertools

p = itertools.permutations('ABCD', 2)

print(' '.join([a+b for a,b in p]))

Вывод:

AB AC AD BA BC BD CA CB CD DA DB DC
1 голос
/ 20 июня 2020

Вы можете использовать Next(p) для перебора повторяемых объектов или:

# import itertools

p = itertools.permutations('ABCD', 2)
for i in p:
    print("".join(i), end=" ")
...