arrow

назад

ask

Вопрос

Какие типы данные есть в Python? На какие 2 вида их принято разделять?

repost

300

input message

напишите коммент


5 комментов

· 28.06.2024

Переменны которые добавил в код я, и переменные которые в уже были в коде, и я их не трогал!

0

ответить

Ответ редакции:

В Python приято выделять 2 вида типов данных:

  • изменяемые (mutable)
  • неизменяемы (immutable)

Их основное отличие заключается в том, что объекты изменяемых типов данных (как следует из названия) доступны к изменению после того, как были созданы, т.е. при указании им нового значения, оно будет помещено область памяти оригинального объекта.

К таким относятся: list, dict, set, bytearray.

Так например добавляя в list новый элемент, список останется прежним объектом, но количество элементов в нем увеличится (за исключением ряда краеугольных ситуаций, когда размер списка начинает превышать изначально максимально доступный, в таком случае происходит пересоздание списка, но этот момент мы опустим). В свободный слот списка добавляется ссылка еще на один (новый) элемент.

В свою же очередь, объекты неизменяемых (immutable) типов данных, при присвоении им нового значения, начинают указывать на новую область памяти, в которой находится новое значение объекта.

К таким относятся: int, float, complex, str, tuple, bytes, bool, frozenset.

Так при присвоении целому числу (int) нового значения, изменится не только само значение объекта, но и адрес в памяти на который ссылается переменная.

Интересно однако, что внутри объектов с неизменяемым (immutable) типом данных могут содержаться элементы изменяемых (mutable) типов данных. Например, кортеж списков: foo = ([1], [2, 3])

Но такие объекты, как и все объекты изменяемых (mutable) типов невозможно использовать в качестве ключей словарей так как интерпретатор при вычислении хэш-значения объекта-ключа не сможет получить одинаковые значения после того как объект будет изменен

0

ответить

· 28.06.2024

И никто не объясняет зачем их нужно различать (тем более, что изменяемые типы тоже пересоздаются)… как же проще было в Си, с их указателями и калоками/малоками…

0

ответить

· 27.06.2024

Ссылочные и значимые?

Ответ не из python, но предположу что тут что-то подобное)

0

ответить

Ссылочное почти все в питоне, но не про это, 2 группы - изменяемые и неизменяемые. Неизменяемые: int, float, str, none, tuple, bool. Изменяемые: list, set, dict, польз классы

0

ответить

еще контент в этом сообществе

пост закреплён — пока закрепить можно только один пост

trash bin
перейти к нему не получится