Словари и множества
Словарь быстро находит значение по ключу, а множество хранит неповторяющиеся элементы. Изучаем назначение и операции структур `dict` и `set` в Python.
Список тем (6 из 11)
Глава 1. Алгоритмы
Глава 2. Структуры данных
Глава 3. Базы данных
Глава 4. Современные технологии и проекты
Словарь (dict) — структура из пар «ключ: значение». В списке элемент находят по номеру (индексу), а в словаре — по ключу: например, оценку ученика по его имени. Пустой словарь создаётся так: d = dict(), значение добавляется и читается так: d["Ali"] = 5 и d["Ali"]. Ключи не повторяются; если записать новое значение с тем же ключом, старое заменится.
При работе со словарём часто встречаются такие операции: "Ali" in d — проверка наличия ключа, d.get("Vali", 0) — вернуть 0, если ключа нет, del d["Ali"] — удаление, d.items() — перебор всех пар в цикле. Поиск по ключу в словаре очень быстрый, потому что место значения определяется по ключу напрямую. Поэтому словарь часто применяют в задачах подсчёта, например, чтобы узнать, сколько раз встречается каждое слово в тексте.
Множество (set) — набор неповторяющихся элементов, порядок которых неважен. Выражение set([1, 2, 2, 3, 3, 3]) хранит только элементы 1, 2, 3, поэтому множество — самый короткий способ убрать повторы из списка. Элемент добавляют так: s.add(4), а наличие проверяют так: 4 in s.
Для множеств есть математические операции: объединение a | b, пересечение a & b, разность a - b. Например, если a = set([1, 2, 3]) и b = set([2, 3, 4]), то a & b — это 2, 3, а a | b — 1, 2, 3, 4. Выбор структуры зависит от задачи: нужна упорядоченная последовательность — список, поиск по ключу — словарь, удаление повторов и быстрая проверка наличия — множество.
Главное
- Словарь хранит пары «ключ: значение» и быстро находит значение по ключу.
- Ключи в словаре не повторяются: новое значение с тем же ключом заменяет старое.
- Множество хранит неповторяющиеся элементы и не зависит от порядка.
- Для множеств есть операции объединения, пересечения и разности.
- Структуру выбирают по задаче: список, словарь или множество.
Практические задания
- Создайте словарь: ключи — имена трёх учеников, значения — их оценки по информатике. Измените оценку одного ученика и выведите все пары с помощью
d.items(). - Напишите программу, которая с помощью словаря подсчитывает, сколько раз встречается каждое слово в введённой пользователем фразе (подсказка: разбейте фразу на слова с помощью
split(), используйтеd.get(w, 0) + 1). - Даны два списка:
[1, 2, 3, 4, 4]и[3, 4, 5]. С помощью множеств найдите их общие элементы и объединение, а из первого списка уберите повторы.
Вопросы для закрепления
Проверьте себя: сначала подумайте, потом откройте ответ.
1Чем словарь отличается от списка?Показать ответСкрыть ответ
В списке к элементу обращаются по номеру (индексу), а в словаре — по ключу.2Как убрать из списка повторяющиеся элементы?Показать ответСкрыть ответ
Нужно превратить список в множество: `set(a)` оставляет только неповторяющиеся элементы.
Войдите на сайт
Слайды и PDF доступны только зарегистрированным пользователям: и просмотр, и скачивание. Вход бесплатный.
Войдите на сайт
Слайды и PDF доступны только зарегистрированным пользователям: и просмотр, и скачивание. Вход бесплатный.
Пройдено тем: 0 из 11
Войти и отметить