Как сделать правильный вывод элементов?
Есть код:
from itertools import permutations
n = str(input())
s = list(n)
for l in s:
perm = permutations(s)
for i in list(perm):
print(i)
Нужно сделать так,чтобы,допустим,при вводе ABC программа выводила не:
('A', 'B', 'C')
('A', 'C', 'B')
('B', 'A', 'C')
('B', 'C', 'A')
('C', 'A', 'B')
('C', 'B', 'A')
а выводила:
ABC
ACB
BAC
BCA
CAB
CBA
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Склеить в строку элементы списка, кортежа или другой коллекции можно легко:
print(''.join(i))
P.S. А вообще весь ваш код можно сократить до одной строки, потому что половина преобразований у вас лишние:
from itertools import permutations
print(*map(''.join, permutations(input())), sep='\n')
Вывод при вводе ABC:
ABC
ABC
ACB
BAC
BCA
CAB
CBA
P.P.S. Немного поясню всё же по исходному коду:
from itertools import permutations
n = str(input()) # str лишнее - input() и так выдаёт строку
s = list(n) # list не нужен, permutations и сам проитерирует строку
for l in s: # цикл не нужен - вы делаете каждую итерацию одно и то же
perm = permutations(s)
for i in list(perm): # list не нужен, цикл нормально проитерируется по perm и без него
print(i)