🤔 Какие типы данных относятся к изменяемым и не изменяемым?



Существует разделение типов данных на изменяемые и неизменяемые. Это разделение основано на возможности изменения значения объекта после его создания.



🚩Изменяемые типы данных (Mutable)



🟠Списки (Lists)

Пример: my_list = [1, 2, 3]

Операции: добавление (my_list.append(4)), изменение (my_list[0] = 0), удаление (del my_list[1])



🟠Словари (Dictionaries)

Пример: my_dict = {'a': 1, 'b': 2}

Операции: добавление (my_dict['c'] = 3), изменение (my_dict['a'] = 0), удаление (del my_dict['b'])



🟠Множества (Sets)

Пример: my_set = {1, 2, 3}

Операции: добавление (my_set.add(4)), удаление (my_set.remove(2))



🟠Массивы (Arrays) из модуля `array`

Пример: from array import array; my_array = array('i', [1, 2, 3])

Операции: изменение (my_array[0] = 0)



🚩Неизменяемые типы данных (Immutable)



🟠Числа (Numbers)

Включают целые (int), вещественные (float), комплексные (complex).

Пример: a = 5, b = 3.14

Операции: a + 1 создаст новый объект.



🟠Строки (Strings)

Пример: my_str = "hello"

Операции: my_str.replace('h', 'j') создаст новую строку, исходная строка останется неизменной.



🟠Кортежи (Tuples)

Пример: my_tuple = (1, 2, 3)

Операции: нельзя изменять элементы кортежа.



🟠Фрозенсеты (Frozensets)

Пример: my_frozenset = frozenset([1, 2, 3])

Операции: нельзя добавлять или удалять элементы.



🟠Типы данных `bytes`

Пример: my_bytes = b"hello"

Операции: нельзя изменять элементы байтового объекта.



🚩Примеры кода



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

# Список

my_list = [1, 2, 3]

my_list.append(4) # [1, 2, 3, 4]

my_list[0] = 0 # [0, 2, 3, 4]



# Словарь

my_dict = {'a': 1, 'b': 2}

my_dict['c'] = 3 # {'a': 1, 'b': 2, 'c': 3}

my_dict['a'] = 0 # {'a': 0, 'b': 2, 'c': 3}



# Множество

my_set = {1, 2, 3}

my_set.add(4) # {1, 2, 3, 4}

my_set.remove(2) # {1, 3, 4}




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

# Число

a = 5

b = a + 1 # a = 5, b = 6



# Строка

my_str = "hello"

new_str = my_str.replace('h', 'j') # my_str = "hello", new_str = "jello"



# Кортеж

my_tuple = (1, 2, 3)

# my_tuple[0] = 0 # Ошибка, кортеж неизменяем



# Фрозенсет

my_frozenset = frozenset([1, 2, 3])

# my_frozenset.add(4) # Ошибка, фрозенсет неизменяем




Ставь 👍 и забирай 📚 Базу знаний