#python #циклы #for
Необходимо перезаписать строку используя ключ. В одном из вопросов находил решение
по перезаписи необходимой строки, однако и такой метод выдает ошибку.
Как я мог бы, используя Питон, перезаписать строку '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
Ответы
Ответ 1
Воспользуйтесь itertools.cycle(): from itertools import cycle cycle_gen = cycle(key) res = ''.join([next(cycle_gen) for _ in splaintext]) print(res) Вывод: abcab
Комментариев нет:
Отправить комментарий