Можно ли использовать itertools.permutations () для печати перестановок в реальном времени? - PullRequest
0 голосов
/ 31 мая 2018

Я пишу простой скрипт, который печатает все перестановки входной строки:

import itertools
inputstring = input("What is your request?")
print("Calculating permutations...")
permlist = (list(itertools.permutations(inputstring)))
for x in range (len(permlist)):
  print ("%s is word #%s"%("".join(permlist[x]),x+1))

Но этот код должен сначала вычислить все перестановки, а затем распечатать их после завершения.Есть ли способ напечатать выходные строки в реальном времени, а не в конце расчета?

1 Ответ

0 голосов
/ 31 мая 2018

Это вызов list, который потребляет все перестановки.Вместо этого просто выполните итерацию объекта iterator , который возвращается непосредственно из itertools:

perms = itertools.permutations(inputstring)

for i, perm in enumerate(perms, 1):
    word = "".join(perm)
    print("%s is word #%d" % (word, i))
...