Что значит неизменяемый тип данных python

Python. Урок 3. Типы и модель данных

В данном уроке разберем как Python работает с переменными и определим какие типы данных можно использовать в рамках этого языка. Подробно рассмотрим модель данных Python, а также механизмы создания и изменения значения переменных.

Немного о типизации языков программирования

Если достаточно формально подходить к вопросу о типизации языка Python, то можно сказать, что он относится к языкам с неявной сильной динамической типизацией.

Неявная типизация означает, что при объявлении переменной вам не нужно указывать её тип, при явной – это делать необходимо. В качестве примера языков с явной типизацией можно привести Java, C++. Вот как будет выглядеть объявление целочисленной переменной в Java и Python.

Также языки бывают с динамической и статической типизацией. В первом случае тип переменной определяется непосредственно при выполнении программы, во втором – на этапе компиляции (о компиляции и интерпретации кратко рассказано в уроке 2). Как уже было сказано Python – это динамически типизированный язык, такие языки как С, C#, Java – статически типизированные.

Сильная типизация не позволяет производить операции в выражениях с данными различных типов, слабая – позволяет. В языках с сильной типизацией вы не можете складывать например строки и числа, нужно все приводить к одному типу. К первой группе можно отнести Python, Java, ко второй – С и С++.

Типы данных в Python

В Python типы данных можно разделить на встроенные в интерпретатор (built-in) и не встроенные, которые можно использовать при импортировании соответствующих модулей.

К основным встроенным типам относятся:

Модель данных

Рассмотрим как создаются объекты в памяти, их устройство, процесс объявления новых переменных и работу операции присваивания.

Для того, чтобы объявить и сразу инициализировать переменную необходимо написать её имя, потом поставить знак равенства и значение, с которым эта переменная будет создана. Например строка:

объявляет переменную b и присваивает ей значение 5.

Целочисленное значение 5 в рамках языка Python по сути своей является объектом. Объект, в данном случае – это абстракция для представления данных, данные – это числа, списки, строки и т.п. При этом, под данными следует понимать как непосредственно сами объекты, так и отношения между ними (об этом чуть позже). Каждый объект имеет три атрибута – это идентификатор, значение и тип. Идентификатор – это уникальный признак объекта, позволяющий отличать объекты друг от друга, а значение – непосредственно информация, хранящаяся в памяти, которой управляет интерпретатор.

При инициализации переменной, на уровне интерпретатора, происходит следующее:

Проверить является или нет идентификатор ключевым словом можно так:

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

Как видно из примера, идентификатор – это некоторое целочисленное значение, посредством которого уникально адресуется объект. Изначально переменная a ссылается на объект 4 с идентификатором 1829984576, переменная b – на объект с id = 1829984592. После выполнения операции присваивания a = b, переменная a стала ссылаться на тот же объект, что и b.

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Тип переменной можно определить с помощью функции type(). Пример использования приведен ниже.

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

В Python существуют изменяемые и неизменяемые типы.

К неизменяемым (immutable) типам относятся: целые числа (int), числа с плавающей точкой (float), комплексные числа (complex), логические переменные (bool), кортежи (tuple), строки (str) и неизменяемые множества (frozen set).

К изменяемым (mutable) типам относятся: списки (list), множества (set), словари (dict).

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

Неизменяемость типа данных означает, что созданный объект больше не изменяется. Например, если мы объявим переменную k = 15, то будет создан объект со значением 15, типа int и идентификатором, который можно узнать с помощью функции id().

Объект с id = 1672501744 будет иметь значение 15 и изменить его уже нельзя.

Если тип данных изменяемый, то можно менять значение объекта. Например, создадим список [1, 2], а потом заменим второй элемент на 3.

Как видно, объект на который ссылается переменная a, был изменен. Это можно проиллюстрировать следующим рисунком.

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

В рассмотренном случае, в качестве данных списка, выступают не объекты, а отношения между объектами. Т.е. в переменной a хранятся ссылки на объекты содержащие числа 1 и 3, а не непосредственно сами эти числа.

P.S.

Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Python. Урок 3. Типы и модель данных : 11 комментариев

У Вас в коде
>>> print “Python keywords: “, keyword.kwlist
не хватает круглых скобок:
>>> print(“Python keywords: “, keyword.kwlist)

создаем матрицу а=((0)*10)*10 делаем а(0)(0)=1, печатаем матрицу и видим что меняется первый элемент в каждой строке(не нашел квадратных скобок на телефоне, сорян). как это объяснить? что здесь объект а что ссылка?

Первый рисунок неверный, обведено b=4, а надо b=5

Немного не понял, а ссылается теперь на 3 но id одинаково, так почему же тогда это мутируемый вид данных?

Мутируемый – потому, что вы меняете содержимое, а переменная как ссылалась на определенную область памяти, помеченную так и продолжает на нее ссылаться. С числами (int, float) это не так, можете провести эксперимент!

Спасибо, Вам! Оставайтесь с нами, будет еще много интересного!

“Объект с будет иметь значение 15 и изменить его уже нельзя.”
Не совсем ясно что вы подразумеваете под невозможностью изменить обьект с данным id. Если, к примеру, присвоить переменной k = 7, то, как я понимаю, будет создан новый обьект с новым id, ссылающийся на 7, но что тогда будет с прежним обьектом с Будет ли, как в c#, активирован в определенный момент времени сборщик мусора так как на данный обьект нет ссылок или что-то другое?

Источник

Python 3: изменяемый, неизменяемый…

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Многие из нас считают Python прекрасным языком программирования. В нем легко разобраться, он очень хорошо читается, а код на нем легко поддерживать. Но основная причина простоты этого языка состоит в том, что под капотом у него есть очень много всего. И хотя многие люди просто знают, что в языке есть и сложные вещи, и им этого достаточно, понимание тонкостей поможет вам избежать появления многих багов в ваших программах. Цель этой статьи — познакомить вас с этими тонкостями.

Объекты

Давайте начнем с краеугольного камня Python — с объектов. Объектом является буквально все. Ваш модуль это объект, функция — объект, число — тоже объект. Объекты это просто экземпляры классов.

Чтобы понять эту концепцию, мы можем представить, что объекты — это отдельные люди, а классы — это группы, к которым эти люди принадлежат. Скажем, все мы — люди (класс human), но я — уникальный индивид (экземпляр класса human).

В Python все является объектом. Каждый объект имеет собственный тип данных и внутреннее состояние (данные). Давайте для начала уясним, как данные хранятся в памяти. Для этого рассмотрим пару примеров.

Пример 1

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Пример 2

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Идентичность и тип

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Функция id() возвращает идентификатор указанной вами переменной. Каждая переменная в Python ссылается на какой-нибудь объект, а идентификатор переменной это целое число, «привязанное» к конкретному объекту. В реализации CPython это число — адрес объекта в памяти. Идентификатор объекта позволяет разграничить случаи, когда переменные идентичны, и когда они ссылаются на один и тот же объект. Для определения идентичности мы можем использовать «==», а «is» используется для определения того, указывают ли переменные на один и тот же объект.

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Но все станет куда более странно, если мы сделаем вот так:

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Вероятно, вы думаете: «Погодите, погодите! Что?! Ведь пару секунд назад, когда мы рассматривали списки, я понял, что они разные. А эти тогда почему одинаковые?» Чтобы ответить на этот вопрос, мы должны углубиться в предмет изменяемости.

Изменяемые объекты

Итак, что же такое изменяемость (мутабельность)? Выражаясь простым языком, это способность мутировать — или изменять объект. К изменяемым (мутабельным) типам в Python относятся списки, множества, словари и bytearrays (массивы байтов). Давайте рассмотрим пример с нашим старым добрым списком. Мы можем добавлять в него элементы:

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Мы можем удалять из него элементы:

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Как уже говорилось, в Python все является объектом. Поэтому каждый элемент в списке это тоже объект. Если мы приглядимся, все опять станет очень странным:

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Почему идентификатор l[1] изменился? Идентификатор всего списка остался неизменным, хотя мы изменили его значения, но почему же изменился идентификатор его элемента? Потому что числа и строки неизменяемы (не мутабельны).

Неизменяемые объекты

Неизменяемость это противоположность изменяемости (логично). Если объект неизменяемый, это значит, что вы не можете менять его содержимое. К встроенным неизменяемым типам относятся целые числа, числа с плавающей точкой, комплексные числа, строки, кортежи, frozenset-ы и байты.

В приведенном выше примере объект список изначально содержал ссылки на объекты «1», «2» и «3». Хотя мы не можем изменить сам объект (цифру 2), можно изменить список за счет изменения хранящейся в нем ссылки. Теперь список содержит ссылку на объект «Hello». Другими словами, произошло переназначение. И хотя увеличивать неизменяемый объект нельзя, мы можем сделать так:

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Кажется, что мы добавили «World» к «Hello», но на самом деле произошло примерно следующее:

Было вычислено значение s («Hello») плюс “ World”, и переменная s получила ссылку на новый объект. Похожий процесс происходит при добавлении чисел:

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Но если вы попытаетесь изменить элемент в неизменяемом наборе, интерпретатор возбудит исключение:

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Аналогично — хотя удалить элемент в неизменяемом объекте нельзя, вы можете взять срез объекта, в результате чего вернется новый объект, содержащий нужные значения:

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Поскольку Python должен создавать отдельный объект для каждого уникального неизменяемого значения (что занимает много памяти), интерпретатор разумным образом оптимизирует создание объектов. Эта оптимизация происходит за счет использования одинаковых ссылок для неизменяемых объектов, таких как строки:

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Преаллокация в Python

А теперь домашнее задание для вас:

Почему это важно?

При присваивании значений переменным очень важно понимать разницу между изменяемыми и неизменяемыми объектами. Изменяемые объекты имеют пару тузов в рукаве. Мы уже рассматривали этот пример:

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

А что, если мы хотим создать копию объекта, чтобы при внесении изменений не волноваться о том, что это затронет оригинал? Мы можем взять срез списка, при этом вернется новый объект (так же, как когда мы брали срез неизменяемого объекта):

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Добавление элементов в списки тоже может быть хитрой штукой. В Python то, что находится в левой части выражения присваивания, получает ссылку на все, что вычисляется в правой. Поэтому:

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Мы видим, что объект остался прежним. Это замещающее присваивание — эквивалент добавления элементов в список. Но поскольку иммутабельные объекты не могут быть изменены, выражения a += b и a = a + b будут работать одинаково и аналогично нашему примеру «Hello World».

Передача аргументов в функции

В других языках программирования переменные часто передаются одним из двух способов:

Но Python в этом плане уникален. Python передает ссылку на объект. Аналогично тому как мы делали переменную y псевдонимом переменной x ( x = y ), при передаче переменной в функцию аргумент функции становится псевдонимом для ссылки на объект.

Это означает, что если внутри функции произойдет новое присваивание, это не изменит оригинальную переменную, переданную в функцию. Поскольку иммутабельные типы не могут быть изменены, никакое изменение переменной внутри функции не сохранится:

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Но поскольку списки мутабельны, их содержимое изменять можно:

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Обратите внимание, что ссылка на список остается той же на протяжении всей программы. Тем не менее, если бы мы переприсвоили значение l внутри функции, это не затронуло бы исходный список.

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Исключения в неизменяемости

Не все неизменяемые объекты на самом деле неизменяемы. Да, все очень запутанно, но сейчас разберемся.

Как уже говорилось, в Python контейнеры типа кортежей неизменяемы. Это значит, что значение tuple не может меняться после того, как кортеж создан. Но «значение» кортежа на самом деле является последовательностью имен с неизменяемыми привязками к объектам. Главное, что нужно понять, это что неизменяемы именно привязки, а не сами объекты.

Кортеж t содержит элементы с разными типами данных. Первый элемент — неизменяемая строка, а второй — изменяемый список. Сам кортеж неизменяемый (нет никаких методов для изменения его содержимого). Аналогично и строка неизменяема, потому что у строк нет никаких методов для их изменения. Но объект список имеет методы, с помощью которых его можно изменить, так что он изменяемый. Это мелочь, но важная: «значение» неизменяемого объекта не может меняться, но объекты, из которых он состоит, — могут.

Заключение

Понимание тонкостей языка может быть чрезвычайно полезным. Многие программисты не уделяют достаточно времени тому, чтобы хорошенько изучить языки, которыми пользуются на постоянной основе. Но близкое знакомство с Python — отличный способ избежать багов.

Кроме того, самодисциплина, позволяющая вам сесть и изучить, что происходит под капотом языка, — сама по себе отличная вещь, которая сослужит вам прекрасную службу в вашей программистской карьере.

Источник

Изменяемый и неизменяемый (и Hashable) в Python

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Введение

Примеры

Изменчивый против неизменного

В Python есть два типа типов. Неизменяемые типы и изменяемые типы.

Immutables

Объект неизменяемого типа не может быть изменен. Любая попытка изменить объект приведет к созданию копии.

Эта категория включает в себя: целые числа, числа с плавающей запятой, сложные, строки, байты, кортежи, диапазоны и фрозенцеты.

Ага! Увидеть? Мы можем изменить это!

В этом случае ясно, что если мы хотим сохранить первую строку, нам нужна копия. Но так ли это очевидно для других типов?

Упражнение

Теперь, зная, как работают неизменяемые типы, что бы вы сказали с приведенным ниже фрагментом кода? Это мудро?

Mutables

Объект изменяемом типа может быть изменен, и он изменяется на месте. Неявные копии не делаются.

В эту категорию входят: списки, словари, байтовые массивы и наборы.

Давайте продолжать играть с нашим маленьким id функции.

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

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

Упражнение

Теперь вы лучше понимаете, какой побочный эффект подразумевает изменчивый тип. Можете ли вы объяснить, что происходит в этом примере?

Изменчивый и неизменный как аргументы

Одним из основных вариантов использования, когда разработчику необходимо учитывать изменчивость, является передача аргументов функции. Это очень важно, потому что это будет определять способность функции изменять объекты, которые не принадлежат ее области действия, или, другими словами, если функция имеет побочные эффекты. Это также важно для понимания того, где должен быть доступен результат функции.

Это не то же самое для кортежей.

Упражнение

Примечание: reverse работает на месте.

Синтаксис

Параметры

Примечания

Что значит неизменяемый тип данных python. Смотреть фото Что значит неизменяемый тип данных python. Смотреть картинку Что значит неизменяемый тип данных python. Картинка про Что значит неизменяемый тип данных python. Фото Что значит неизменяемый тип данных python

Научим основам Python и Data Science на практике

Это не обычный теоритический курс, а онлайн-тренажер, с практикой на примерах рабочих задач, в котором вы можете учиться в любое удобное время 24/7. Вы получите реальный опыт, разрабатывая качественный код и анализируя реальные данные.

Источник

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

Дата публикации Oct 17, 2019

Возможно, вы уже слышали фразу «все в Python является объектом».Объектыявляются абстракцией для данных, и в Python есть удивительное разнообразие структур данных, которые вы можете использовать для представления данных или комбинировать их для создания собственных пользовательских данных.

Первое фундаментальное различие, которое Python делает с данными, заключается в том, изменяется ли значение объекта. Если значение может измениться, объект называетсяизменчивыйв то время как если значение не может измениться, объект вызываетсянеизменный,

В этом ускоренном курсе мы рассмотрим:

Очень важно понимать разницу между изменяемым и неизменным, потому что это влияет на код, который вы пишете.

Этот ускоренный курс адаптирован из Next Tech’sИзучите программирование на PythonКурс, который использует сочетание теории и практики для изучения Python и его возможностей, и продвигается от новичка до опыта в Python. Он включает в себя изолированную среду в браузере со всем необходимым программным обеспечением и предустановленными библиотеками. Вы можете начать бесплатноВот!

Изменчивый против неизменного

Для начала важно понимать, что каждый объект в Python имеет идентификатор (или идентификатор), тип и значение, как показано в следующем фрагменте:

После создания идентификатор объекта никогда не меняется. Это уникальный идентификатор для него, и он используется за кулисами Python для извлечения объекта, когда мы хотим его использовать.

Тип также никогда не меняется. Тип сообщает, какие операции поддерживаются объектом, и возможные значения, которые могут быть ему назначены.

Значение может измениться или нет. Если это возможно, то объект называется изменчивым, а когда он не может, объект считается неизменным.

Давайте посмотрим на пример:

Как вы можете видеть из печати id(age) до и после второго объекта с именем age был создан, они разные.

Теперь давайте посмотрим на тот же пример с использованием изменяемого объекта.

Итак, объекты типа int неизменны и объекты типа list изменчивы Теперь давайте обсудим другие неизменяемые и изменяемые типы данных!

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

Изменяемые последовательности могут быть изменены после создания. Некоторые из изменяемых типов данных Python:списки,байтовые массивы,наборы, а такжесловари,

Списки

Как вы видели ранее, списки изменчивы. Вот еще один пример использования append() метод:

Байтовые массивы

Массивы байтов представляют изменяемую версию bytes объекты. Они раскрывают большинство обычных методов изменяемых последовательностей, а также большинство методов bytes тип. Элементы являются целыми числами в диапазоне [0, 256).

Давайте посмотрим на быстрый пример с bytearray тип, чтобы показать, что это изменчиво:

наборы

Как вы видете, set они действительно изменчивы. Позже, вНеизменные типы данныхраздел, мы увидим, что frozenset с неизменны.

Словари

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

Неизменяемые типы данных отличаются от своих изменяемых аналогов тем, что их нельзя изменить после создания. Некоторые неизменяемые типы включаютчисловые типы данных,строки,байтов,замороженные наборы, а такжекортежи,

Числовые типы данных

Вы уже видели, что целые числа неизменны; аналогично, другие встроенные числовые типы данных Python, такие как логические значения, числа с плавающей запятой, комплексные числа, дроби и десятичные числа, также являются неизменяемыми!

Строки и байты

Текстовые данные в Python обрабатываются с str объекты, более известные какстроки, Они являются неизменными последовательностямиЮникод кодовые точки, Кодовые точки Unicode могут представлять символ.

Когда дело доходит до хранения текстовых данных или их отправки по сети, вы можете закодировать их, используя соответствующую кодировку для носителя, который вы используете. Результат кодирования дает bytes объект, синтаксис и поведение которого аналогичны строкам.

И строки, и байты являются неизменяемыми, как показано в следующем фрагменте:

В разделе байтов мы сначала определили f как закодированная версия нашего unicode строка. Как вы можете видеть из print(type(f)) это bytes тип. Затем мы создаем еще один bytes названный объект f чья ценность b’A bytes object’ Два f объекты имеют разные идентификаторы, что показывает, что байты неизменны.

Замороженные наборы

Как обсуждалось в предыдущем разделе, frozenset схожи с set s. Тем не мение, frozenset объекты весьма ограничены в отношении их изменяемого аналога, поскольку они не могут быть изменены. Тем не менее, они все еще оказываются очень эффективными для тестирования членства, объединения, пересечения и разностных операций, а также по причинам производительности.

Кортеж

Надеюсь, вам понравился этот ускоренный курс о разнице между неизменяемыми и изменяемыми объектами и о том, как узнать, что это за объект! Теперь, когда вы понимаете эту фундаментальную концепцию программирования на Python, вы можете изучить методы, которые вы можете использовать для каждого типа данных.

Если вы хотите узнать об этом и продолжить совершенствовать свои навыки работы с Python, Next Tech предлагаетИзучите программирование на Pythonкурс, который охватывает:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *