f'{i[j]}{i[j+1]}'
Представляет два элемента из i
. Но мы хотим использовать все предметы из i
, сколько бы их ни было. Скажем, например, что мы вводим HACK 3
; itertools.permutations
произведет перестановку, такую как ('H', 'A', 'C')
, и мы хотим вывести один элемент 'HAC'
- мы не хотим снова l oop и получить 'HA'
, 'AC'
отдельно.
То, что мы хотим сделать, это просто объединить все элементы в одну строку. Мы делаем это, используя встроенный .join
строковый метод:
# Also, there is no need to make a list ahead of time; we can iterate directly
# on the itertools results.
for item in itertools.permutations(variable,r):
print(''.join(item))
# Another way is to pass the letters as separate argument to `print`,
# and let it do the joining implicitly:
# print(*item, sep='')
# This is one of those neat things that becomes possible due to `print`
# becoming a function in 3.x.