Какие встроенные типы данных есть в Python?

«Какие встроенные типы данных есть в Python?» — вопрос из категории Python, который задают на 30% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Python типы данных делятся на изменяемые (mutable) и неизменяемые (immutable), что критично для понимания поведения объектов.

Неизменяемые (Immutable):

  • int, float, complex — числовые типы.
  • str — строки.
  • tuple — кортежи.
  • bytes — байтовые строки.
  • frozenset — неизменяемое множество.
  • bool — логический тип (True, False).

Изменяемые (Mutable):

  • list — списки.
  • dict — словари.
  • set — множества.
  • bytearray — изменяемая байтовая последовательность.

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

# Неизменяемый тип (int)
a = 5
b = a  # b ссылается на тот же объект
b = 10 # Создается новый объект 10, a не меняется
print(a) # 5

# Изменяемый тип (list)
list1 = [1, 2, 3]
list2 = list1 # list2 ссылается на тот же объект в памяти
list2.append(4) # Изменяется общий объект
print(list1) # [1, 2, 3, 4] - list1 тоже изменился!

Проверка и преобразование типов:

x = 42
type(x)          # <class 'int'>
isinstance(x, int) # True
float(x)         # 42.0 (преобразование)
str(x)           # '42'

Ключевое на практике: Понимание мутабельности помогает избежать ошибок, особенно при передаче аргументов в функции. Неизменяемые объекты передаются по значению (фактически, копируется ссылка, но объект нельзя изменить), а изменяемые — по ссылке.

Видео-ответы