Что такое словарь (dict) в Python?

Ответ

Словарь (dict) — это встроенная изменяемая коллекция, хранящая пары объектов в формате ключ: значение. Ключи должны быть уникальными и хешируемыми (неизменяемыми типами, такими как str, int, float, tuple), а значения могут быть любого типа.

Основные операции:

# Создание
person = {'name': 'Alice', 'age': 30, 'city': 'London'}

# Доступ по ключу
print(person['name'])  # Alice

# Безопасный доступ с get()
print(person.get('job', 'Not specified'))  # Not specified

# Добавление или обновление
person['job'] = 'Engineer'

# Удаление
removed_value = person.pop('city')
del person['age']

# Итерация
for key, value in person.items():
    print(f'{key}: {value}')

Ключевые особенности:

  • Оптимизирован для быстрого поиска значения по ключу (в среднем O(1)).
  • Начиная с Python 3.7, словари сохраняют порядок добавления элементов.
  • Полезные методы: keys(), values(), items(), update(), setdefault().
  • Словари часто используются для представления JSON-подобных структур, кэшей, подсчета элементов (через collections.Counter).

Ответ 18+ 🔞

Вот, бля, словарь — это такая штука, где всё по парам лежит: ключ и его значение. Представь, будто у тебя есть шкаф, и на каждой полке лежит коробка с надписью. Надпись — это ключ, а что внутри — это значение. Главное, чтобы надписи не повторялись, а то потом нихуя не разберёшь, где что. И надписи должны быть нормальными, постоянными — не меняться, как будто их маркером намертво написали. А уж что в коробке валяется — хоть говно, хоть конфеты, хоть другой шкаф — похуй.

Чё с ним можно делать:

# Создаём, ёпта
person = {'name': 'Alice', 'age': 30, 'city': 'London'}

# Достаём по ключу
print(person['name'])  # Alice

# Достаём безопасно, чтобы не вылетело с ошибкой, если ключа нет
print(person.get('job', 'Not specified'))  # Not specified

# Добавляем или меняем
person['job'] = 'Engineer'

# Удаляем
removed_value = person.pop('city')
del person['age']

# Перебираем всё, что внутри
for key, value in person.items():
    print(f'{key}: {value}')

На что обратить внимание, чувак:

  • Ищет значения овердохуища быстро. Сказал ключ — сразу получил ответ, почти мгновенно.
  • С Python 3.7 он, сука, запоминает, в каком порядке ты всё туда пихал. Раньше был бардак, а теперь — порядок.
  • Есть куча полезных методов: keys() — все ключи, values() — все значения, items() — всё вместе, update() — обновить кучу всего разом, setdefault() — хитрый метод, чтобы не париться.
  • Используют их везде: для данных в формате JSON, для кэшей, для подсчёта, сколько раз какая хрень встретилась (для этого есть даже отдельный collections.Counter, чтобы самому не изобретать велосипед).

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