Множества и словари в Python: полный разбор для ЕГЭ
Множества и словари — одни из ключевых структур данных в Python, которые часто встречаются в заданиях ЕГЭ по информатике. Они позволяют эффективно работать с уникальными элементами и хранить пары «ключ-значение». В этой статье мы разберём теорию, типичные задачи и способы их решения, чтобы вы могли уверенно справляться с экзаменом.
Множество (set) — это неупорядоченная коллекция уникальных элементов. Оно поддерживает операции пересечения, объединения, разности и другие. Словарь (dict) — это структура для хранения данных в формате «ключ: значение», где ключи уникальны. Оба типа активно используются для обработки данных, особенно при подсчёте частот.
Мы рассмотрим примеры уровня ЕГЭ, разберём пошаговые решения и ответим на частые вопросы. В конце вы узнаете, как можно углубить знания с помощью AI-репетитора.
Без карты, без кредитки. Выбери персонажа — учи голосом, побеждай в баттлах.
Множества в Python: основы и операции
Множество в Python создаётся с помощью фигурных скобок или функции set(). Важно: элементы множества должны быть неизменяемыми (числа, строки, кортежи). Основные операции:
- len(s) — количество элементов
- x in s — проверка вхождения
- s1 | s2 — объединение
- s1 & s2 — пересечение
- s1 - s2 — разность
- s1 ^ s2 — симметрическая разность
Множества часто применяются для удаления дубликатов из списка или для проверки пересечения данных.
Даны два списка чисел. Вывести количество общих чисел (без учёта повторений).
Шаг 1: Преобразуем списки в множества: set1 = set(list1), set2 = set(list2).
Шаг 2: Находим пересечение: common = set1 & set2.
Шаг 3: Выводим len(common).
Пример: list1 = [1,2,2,3], list2 = [2,3,4] → set1={1,2,3}, set2={2,3,4} → common={2,3} → ответ 2.
Словари в Python: ключи и значения
Словарь (dict) — это изменяемая коллекция пар «ключ-значение». Ключи уникальны, значения могут быть любыми. Создание: d = {'a': 1, 'b': 2} или dict(a=1, b=2). Основные методы:
- d.keys(), d.values(), d.items()
- d.get(key, default) — безопасное получение значения
- d.update(other) — обновление словаря
Словари незаменимы для подсчёта частот элементов, построения таблиц соответствий и быстрого поиска по ключу.
Дан список слов. Подсчитать, сколько раз встречается каждое слово. Вывести слово и его частоту.
Шаг 1: Создаём пустой словарь freq = {}
Шаг 2: Для каждого слова w в списке: если w в freq, то freq[w] += 1, иначе freq[w] = 1.
Шаг 3: Выводим freq.items().
Пример: ['cat', 'dog', 'cat'] → freq = {'cat': 2, 'dog': 1}.
Применение множеств и словарей для подсчёта частот
Комбинация множеств и словарей позволяет решать задачи эффективно. Например, чтобы найти уникальные элементы и их количество, можно использовать set для уникальности и dict для подсчёта. Типичная задача ЕГЭ: дан текст, нужно найти количество различных слов и частоту каждого.
Алгоритм:
1. Разбить текст на слова (например, через split()).
2. Использовать set для получения уникальных слов.
3. Использовать dict для подсчёта: проходим по списку слов, увеличиваем счётчик.
Такой подход даёт O(n) время и O(n) память.
В тексте, состоящем из слов, разделённых пробелами, найти слово, которое встречается чаще всего. Если таких несколько, вывести первое по алфавиту.
Шаг 1: words = text.split()
Шаг 2: freq = {}
for w in words:
freq[w] = freq.get(w, 0) + 1
Шаг 3: max_freq = max(freq.values())
Шаг 4: candidates = [w for w, c in freq.items() if c == max_freq]
Шаг 5: result = min(candidates) # первое по алфавиту
Шаг 6: print(result)
Пример: text = 'a b c a b a' → freq={'a':3,'b':2,'c':1} → max_freq=3 → candidates=['a'] → ответ 'a'.
Пример задачи ЕГЭ: множества и словари в действии
Рассмотрим задачу из реального ЕГЭ (номер 2 или 17 в зависимости от года). Условие: на вход подаётся последовательность чисел. Требуется найти количество пар, в которых сумма элементов кратна 3, а произведение больше некоторого порога. Для решения удобно использовать словарь для группировки чисел по остаткам от деления на 3, а затем множества для проверки уникальности пар.
Решение включает подсчёт количества чисел с каждым остатком, затем комбинаторику. Множества помогают избежать дублирования пар, если числа повторяются.
Часто задаваемые вопросы (FAQ)
Частые вопросы
Без карты, без кредитки. Выбери персонажа — учи голосом, побеждай в баттлах.