@jofumi

В чём разница между изменяемыми и неизменяемыми типами данных в Pyhton?

В питоне есть изменяемые/mutable(списки, словари) и неизменяемые/immutable(кортежи, строки целочисленные) типы данных. Из названия я понимаю в чём суть, и то, что, например, объединение строк в питоне затратная задача, т.к. создается новая строка, а не изменяются старые. Но пока не уверен почему так происходит. Моя догадка, что для изменения сток и чисел и всех неизменяемых данных приходится выделять всегда новое место в памяти и менять указатель. т.е. при a=6 /n a=7. указатель переменной будет указывать на другое место в памяти. А при схожем действии со списком изменится содержимое ячейки памяти, на которую указывает указатель. И собственно поэтому стоит всегда быть аккуратными с изменяемыми даннами(например, при создании переменных в теле класса, а не в __init___). Так ли это? и если да, то можно еще реальных примеров, где это очень важно? допустим, случаи, когда из списка необходимо сделать кортеж, или еще что.
  • Вопрос задан
  • 451 просмотр
Пригласить эксперта
Ответы на вопрос 1
longclaps
@longclaps
Переменная на что-то указывает. Содержимое мютабла на что-то указывает. Всё.
a = 2   # a -> 2
b = [2] # b -> объект типа лист, нулевая ячейка которого -> 2
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы