Необходимо перезаписать строку используя ключ. В одном из вопросов находил решение по перезаписи необходимой строки, однако и такой метод выдает ошибку.
Как я мог бы, используя Питон, перезаписать строку 'splaintext' с помощью 'key'?
key является аргументом командной строки - argv[1] (строка)
splaintext - строка, вводимая пользователем
В итоге, если:
splaintext` = 'hello'
key = 'abc'
результатом будет: 'abcab'
Код:
for i in range(len(splaintext)):
for j in range(len(key)):
if i == len(splaintext):
break
else:
while True:
symbol = key[j]
splaintext[i] = splaintext[:i] + symbol + splaintext[i+1:]
i = i + 1
j = j + 1
if j == len(key):
j = 0
elif i == len(splaintext):
break
Ошибка:
splaintext[i] = splaintext[:i] + symbol + splaintext[i+1:]
TypeError: 'str' object does not support item assignment
Ответ
Воспользуйтесь itertools.cycle()
from itertools import cycle
cycle_gen = cycle(key)
res = ''.join([next(cycle_gen) for _ in splaintext])
print(res)
Вывод:
abcab
Комментариев нет:
Отправить комментарий