Что такое изменяемое и неизменяемое в Python?

Опубликовано: 2022-09-22

В Python каждая переменная содержит экземпляр любого объекта двух видов: изменяемый и неизменяемый. Уникальный идентификатор объекта присваивается объекту всякий раз, когда он создается. Среда выполнения определяет тип объекта и не может быть изменена позже.

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

Функция изменяемости объектов в Python делает его языком с динамической типизацией. Mutable и Immutable в Python очень важны как концепции, но их часто путают из-за их непереходной природы неизменности.

Давайте узнаем все о них и ключевых различиях.

Посетите наши онлайн-курсы по науке о данных, чтобы повысить свою квалификацию

Оглавление

Лучшие навыки работы с данными, которым нужно научиться, чтобы повысить квалификацию

Сл. Нет Лучшие навыки работы с данными в 2022 году
1 Онлайн-курсы по анализу данных Онлайн-курсы по логической статистике
2 Онлайн-курсы по проверке гипотез Онлайн-курсы по логистической регрессии
3 Курсы линейной регрессии Онлайн-курсы по линейной алгебре для анализа

Изменяемое состояние в Python

Слово «изменчивый» напрямую переводится как «изменчивый» или что-то, что может «мутировать». Он определяет объект, открытый для изменений, а в Python «изменяемый» относится к способности объекта изменять значения. Эти объекты часто хранят набор данных и содержат встроенные списки типов, наборы, словари и определяемые пользователем классы.

Неизменяемое состояние определения в Python

Immutable в Python — это когда вы не можете изменить тип объекта с течением времени. Если невозможно изменить значение объекта в Python, он называется неизменяемым объектом. После создания неизменяемого объекта его значение остается постоянным и неизменным. Неизменяемые объекты встроенного типа — это числа, строки, кортежи, фиксированные наборы и определяемые пользователем классы.

Объекты в Python

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

  • Идентификация: относится к адресу объекта в памяти компьютера.
  • Тип : относится к типу создаваемого объекта. Например, целое число, строка, список и тому подобное.
  • Значение : это относится к значению, которое хранит объект. Например, List=[5,6,7] будет хранить числа 5, 6 и 7.

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

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

Изменяемые объекты — это объекты в Python, которые можно видоизменять или изменять. Коды лучше служат для обучения реализации этих объектов. Поэтому давайте посмотрим на несколько кодов и попробуем лучше понять изменяемые объекты:

  • Для составления списка, содержащего названия фруктов

фрукты = ['Манго', 'Папайя', 'Апельсин']

  • Для печати элементов из списка фруктов, разделенных запятой и пробелом

для фруктов во фруктах:

печать (фрукты, конец = ', ')

Выход [1]: манго, папайя, апельсин

  • Для печати местоположения объекта, созданного в адресе памяти в шестнадцатеричном формате.

Изучите наши популярные онлайн-курсы по науке о данных

Высшая программа высшего образования в области науки о данных от IIITB Программа профессиональных сертификатов в области науки о данных для принятия бизнес-решений Магистр наук в области науки о данных Университета Аризоны
Расширенная сертификационная программа в области науки о данных от IIITB Профессиональная сертификационная программа в области науки о данных и бизнес-аналитики Университета Мэриленда. Онлайн-курсы по науке о данных

печать (шестнадцатеричный (id (фрукты)))

Выход [2]: 0x1691d7de8c8

  • Добавление нового фрукта в список «фрукты»

fruit.append('Виноград')

  • Для печати элементов, присутствующих в списке «фрукты», разделенных запятой и пробелом.

для фруктов во фруктах:

печать (фрукты, конец = ', ')

Продукт [3]: манго, папайя, апельсин, виноград.

  • Для печати созданного в памяти адреса объекта в шестнадцатеричном формате

печать (шестнадцатеричный (id (фрукты)))

Выход [4]: ​​0x1691d7de8c8

Пример показывает, что внутреннее состояние объекта «фрукты» можно легко изменить, добавив к нему еще один фрукт «Виноград». Однако адрес памяти объекта остается прежним, что доказывает отсутствие необходимости в создании нового объекта. Скорее, один и тот же объект может быть изменен или видоизменен. В этом примере показано, что объект с именем ссылочной переменной «фрукты» типа списка является изменяемым.

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

Неизменяемые объекты в Python — это объекты, значения которых нельзя изменить. Давайте следовать простому коду, чтобы лучше понять, что такое неизменяемые объекты и как они работают. Код приведен ниже: -

  • Для создания кортежа, содержащего английское название месяцев

месяца = 'январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', 'август'

  • Для печати элементов кортежа месяцев

печать (месяцы)

Вывод [1]: («Январь», «Февраль», «Март», «Апрель», «Май», «Июнь», «Июль», «Август»)

  • Для печати местоположения объекта, созданного в адресе памяти в шестнадцатеричном формате

печать (шестнадцатеричный (id (месяцы)))

Выход [2]: 0x1691cc35090

  • Важно отметить, что кортежи неизменяемы; следовательно, они не включают больше новых элементов. Следовательно, вам нужно использовать слияние кортежей с оператором # +, чтобы добавить новый воображаемый месяц в кортеж 'months'.

месяцы += 'Pythonuary'

  • Для печати элементов кортежа «месяцы».

печать (месяцы)

Вывод [3]: («Январь», «Февраль», «Март», «Апрель», «Май», «Июнь», «Июль», «Август», «Питонуарий»)

  • Для печати местоположения объекта, созданного в адресе памяти в шестнадцатеричном формате

печать (шестнадцатеричный (id (месяцы)))

Выход [4]: ​​0x1691cc8ad68

Читайте наши популярные статьи о науке о данных

Карьерный путь в науке о данных: подробное руководство по карьере Карьерный рост в науке о данных: будущее работы уже здесь Почему наука о данных важна? 8 способов, которыми наука о данных приносит пользу бизнесу
Актуальность науки о данных для менеджеров Окончательная шпаргалка по науке о данных, которую должен иметь каждый специалист по данным 6 главных причин, почему вы должны стать специалистом по данным
Один день из жизни Data Scientist: что они делают? Развенчан миф: Data Science не нуждается в кодировании Бизнес-аналитика и наука о данных: в чем разница?

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

Вывод

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

Если вы начинающий программист или энтузиаст науки о данных, изучение изменяемых и неизменяемых объектов в Python поможет вам выбрать эту область своей карьеры. Лучший способ узнать об этом — зарегистрироваться в программе Executive Post Graduate Program в области науки о данных на upGrad.

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

Q1. Каковы существенные различия между изменяемым и неизменяемым в Python?

Ответ. Состояние или значение объекта открыто для изменения после создания в изменяемом. Состояние или значение объекта не открыто для изменения после создания в неизменяемом. Изменяемые объекты не являются потокобезопасными. Неизменяемые объекты полностью потокобезопасны. Изменяемые классы не являются окончательными. Перед созданием неизменяемого объекта необходимо сделать класс final.

Q2. Что такое изменяемые и неизменяемые типы данных в Python?

Ответ. Изменяемыми типами данных в Python являются список, набор, словарь и определяемые пользователем классы, а неизменяемыми типами данных являются int, decimal, float, bool, tuple, string и range.

Q3. Изменяемы ли списки в Python?

Ответ: В Python списки — это изменяемые типы данных с легко изменяемыми элементами. Кроме того, вы можете заменить отдельные элементы и даже изменить порядок элементов после создания списка.