@iamXado

Как добавить в список несколько символов под один индекс?

Рабочий вариант:
text = input('Input Message: ')

for el in text:
	message = []
	message.append(el)

	encode = []
	if 'а' in message:
		s1 = 'а'.replace('а', 's1')
		encode.append(s1)
	print(encode[0], end = '')

Ну соответственно, если в text присвоим значение 'а', то на выходе программы получим значение 's1'.

А вот нерабочий вариант:
text = input('Input Decode Message: ')

for el in text:
	message = []
	message.append(el)

	encode = []
	if 's1' in message:
		s1 = 's1'.replace('s1', 'а')
		encode.append(s1)
	print(encode[0], end = '')

В результате выполнения её работы получаю ошибку:
print(encode[0], end = '')
IndexError: list index out of range

Проблема в том, что в message s и 1 добавляются через запятую и наследуют индексы 0 и 1 соответственно. Поэтому и не проходит проверка и вылетает ошибка. В этом и суть вопроса, как сделать 's1' под одним индексом, одним целым?
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 2
@Art005
Вообще не понимаю что вы написали, но отвечу на вопрос в заголовке
Список[индекс]+=новый символ
Я еще не понимаю зачем присваивание переменной s1 делать через присваивание другой строки этой переменной, а потом замену этой строки на другую, не лучше написать s1 = 'a'.
А ошибка я надеюсь вы понимаете, что выходит из-за того что вы в каждом цикле обнуляете список
Ответ написан
SoreMix
@SoreMix Куратор тега Python
yellow
Странный код конечно.

1. s1 = 's1'.replace('s1', 'а') Вы же понимаете, что тут вы создаете строку "s1", затем "s1" в этой же строке заменяете на "a" и получаете строку "а"?
2.
Проблема в том, что в message s и 1 добавляются через запятую
Они никуда не добавляются, учитывая то, что после добавления одного символа в список, сразу же идет проверка на наличие в списке двух символов. Ну и как мы понимаем, в списке с одним односимвольным элементом в принципе не может взять двухсимвольный элемент, после этого пытаемся вывести первый элемент пустого списка и получаем ошибку
3. В целом непонятно, чего вы хотите добиться этим кодом. Хотите заменить все "s1" на "a"? Ну сделайте так
text = input('Input Decode Message: ')
text = text.replace('s1', 'a')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы