Статьи

Учебные материалы по языку Python — от основ до продвинутых тем

Словари и множества

Страница 9 из 34 · 2026-10-26 · 2 мин чтения

Словари

Словарь хранит пары «ключ — значение». С версии 3.7 порядок вставки гарантированно сохраняется:

user = {"name": "Anna", "age": 25}empty = {}by_dict = dict(name="Anna", age=25)

Доступ и изменение

print(user["name"])print(user.get("email"))print(user.get("email", "нет"))user["email"] = "a@example.com"user["age"] = 26del user["email"]

Обращение к отсутствующему ключу через [] вызывает KeyError, метод get возвращает None или значение по умолчанию.

Методы

d = {"a": 1, "b": 2}print(d.keys())print(d.values())print(d.items())d.update({"c": 3})d.setdefault("d", 4)x = d.pop("a")d.clear()

Перебор

d = {"a": 1, "b": 2}for key in d:    print(key)for key, value in d.items():    print(key, value)

Включения

squares = {x: x ** 2 for x in range(5)}inverted = {v: k for k, v in squares.items()}

Объединение

a = {"x": 1}b = {"y": 2}print(a | b)print({**a, **b})

defaultdict и Counter

from collections import defaultdict, Countergroups = defaultdict(list)groups["a"].append(1)counter = Counter("abracadabra")print(counter.most_common(2))

Хешируемость

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

Множества

Множество — неупорядоченная коллекция уникальных хешируемых элементов:

s = {1, 2, 3}empty = set()from_list = set([1, 1, 2, 2, 3])print(from_list)

Пустые фигурные скобки {} создают словарь, а не множество.

Операции

a = {1, 2, 3}b = {3, 4, 5}print(a | b)print(a & b)print(a - b)print(a ^ b)print(a <= b)a.add(10)a.discard(10)a.remove(1)

Проверка принадлежности x in s для множества выполняется за константное время в среднем.

Задания

  1. Подсчитайте частоту слов в тексте с помощью словаря.
  2. Найдите элементы, которые есть в обоих списках, с помощью множеств.
  3. Сгруппируйте слова по первой букве с помощью defaultdict.