Ответ
В Python типы данных делятся на встроенные (immutable и mutable) и специализированные из стандартной библиотеки. Вот основные встроенные:
Неизменяемые (Immutable):
- Числовые:
int— целые числа (неограниченной точности).float— числа с плавающей запятой.complex— комплексные числа.
- Последовательности:
str— строки (последовательности Unicode-символов).tuple— кортеж (упорядоченная, неизменяемая коллекция).bytes— неизменяемая последовательность байтов.range— диапазон целых чисел.
- Множества (Set Types):
frozenset— неизменяемое множество.
- Словари (Mapping Type):
- Ключи словаря должны быть неизменяемого типа (например,
str,int,tuple).
- Ключи словаря должны быть неизменяемого типа (например,
Изменяемые (Mutable):
- Последовательности:
list— список (упорядоченная, изменяемая коллекция).
- Множества (Set Types):
set— изменяемое множество (неупорядоченная коллекция уникальных элементов).
- Словари (Mapping Type):
dict— словарь (неупорядоченная коллекция пар ключ-значение).
- Байтовые массивы:
bytearray— изменяемая последовательность байтов.
Примеры и ключевые отличия:
# Неизменяемые (immutable)
x = 10 # int
x = 20 # Создается новый объект, старый удаляется (если на него нет ссылок)
t = (1, 2, 3) # tuple
# t[0] = 5 # Вызовет TypeError: 'tuple' object does not support item assignment
s = "hello" # str
# s[0] = 'H' # TypeError: 'str' object does not support item assignment
# Изменяемые (mutable)
lst = [1, 2, 3] # list
lst[0] = 99 # Объект списка изменяется на месте
print(lst) # [99, 2, 3]
d = {'a': 1} # dict
d['b'] = 2 # Добавляем новую пару ключ-значение в существующий объект
Понимание мутабельности критично для корректной работы с функциями, присваиванием и для избежания неожиданных сайд-эффектов.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶