@Diolorca

Как изменить/заменить последний элемент списка?

Здравствуйте!
Есть такой код:
dokum = 'one, two'
dokum = dokum.split(',')
for i in range(len(dokum)):
    dokum[i] = '- '  + dokum[i].lstrip() + ';'
        
print("Список с ; в конце ", dokum)
docum_s_dot = dokum
docum_s_dot[-1] = dokum[-1][:-1] + '.'

print("Список с . в конце ", docum_s_dot)
print("Список с ; в конце ", dokum)


Код работает, заменяет в конце списка точку с запятой на точку, но при этом у оригинального списка, на котором менять не нужно точку с запятой на точку, он также меняет. Не соображу почему так

Получается так:
Список с ; в конце  ['- one;',  '- two;']
Список с . в конце  ['- one;', ' - two.']
Список с ; в конце  ['- one;', ' - two.']


А надо так:
Список с ; в конце  ['- one;',  '- two;']
Список с . в конце  ['- one;', ' - two.']
Список с ; в конце  ['- one;', ' - two;']
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
LaRN
@LaRN
Senior Developer
У вас обе переменные ссылаются на один объект.
Сделайте копию списка и тогда ошибка уйдёт.
Скопировать можно например так
docum_s_dot = dokum[:]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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