#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
Комментариев нет:
Отправить комментарий