Изменяемые и неизменяемые типы данных

Опубликован: 28.08.2023 88

Типы данных в Python можно разделить на две группы:

  • изменяемые (list, set, dict, byte array);
  • неизменяемые (int, float, bool, string, tuple, frozenset и др.).

Группа неизменяемых типов данных более многочисленная, чем группа изменяемых типов данных.

Изменяемые типы данных:

  • list - список, последовательность, элементами которой могут быть произвольные объекты Python;
  • bytearray - изменяемый массив байтов;
  • dict - словарь, последовательность элементов, представленных парами "ключ: значение";
  • set - множество уникальных неупорядоченных элементов;

Неизменяемые типы данных:

  • bool - логический тип данных, который может содержать значения True или False (так как это подтип целочисленного типа: True равно 1, False равно 0);
  • None - тип данных, который означает отсутствие значения (логическое значение None соответствует False);
  • int - целые числа, размер которых ограничен только размерами оперативной памяти;
  • float - числа с плавающей точкой, информация о точности доступна в sys.float_info;
  • complex - комплексные числа в виде пары чисел с плавающей точкой двойной точности, которые, в свою очередь, представляют действительную и мнимую части;
  • str - строковый тип данных, представляет последовательность строковых символов, каждый из которой является объектом str длиной, равной 1;
  • bytes - байтовый тип данных, представляет последовательность одиночных байтов (целых чисел в диапазоне от 0 до 256);
  • tuple - кортеж неизменяемая последовательность, которая может содержать любые объекты Python;
  • range - генератор последовательности положительных целых чисел на основе заданного индекса начала и конца;
  • frozenset - неизменяемое множество.

Изменяемый объект может изменять свое состояние или содержимое после создания объекта, а неизменяемый – нет.

Когда мы присваиваем новое значение неизменяемому объекту, Python не перезаписывает его, а создаёт новый объект с тем же именем.

Чтобы в этом убедиться, достаточно проверить id — уникальный номер, который присваивается каждому объекту в Python.

Для получения id в Python используется функция id(), возвращающая id объекта в виде целого числа, а оператор is сравнивает id двух объектов.

a = 50
type(a)
<class: int>

b = "Smit"
type(b)
<class: 'string'>

print(a is b)  # сравнение типов
False

x = "Smit"
y = "Smit"
id(x)
140135852055856
id(y)
140135852055856
print(x is y)  # сравнение типов
True

Похожие посты

Использование аннотации типов в Python

Динамическая типизация в Python

Встроенные типы данных в Python

Преобразование типов данных в Python

Комментариев нет.