Я действительно мутирую в списке?
Скажи, что мне дали список
lst1 = [1,2,3,4]
removed_item = lst1.pop()
lst1.append(removed_item)
Я временно изменил значения, но после запуска все вернулось к норме. Считается ли это мутацией списка?
2 ответа
Решение
Да, потому что вы удалили элемент (изменив список), а затем снова добавили его (изменили список... снова).
Списки изменчивы, а строки - нет. Запустите этот код, и вы получите ответ
lst1 = [1,2,3,4]
print(id(lst1))
removed_item = lst1.pop()
print(id(lst1))
lst1.append(removed_item)
print(id(lst1))
str1 = "a string"
print(id(str1))
removed_item = str1[-1]
str1 = str1[:-1]
print(id(str1))
str1 += removed_item
print(id(str1))