🏠 Домашнее задание

⚡ Кратко: домашнее задание

Set comprehension создаёт множество из выражения, цикла и необязательного условия.

frozenset - неизменяемый аналог set, поэтому его можно использовать как ключ словаря или элемент другого множества.

Словарь хранит пары ключ-значение; ключ должен быть уникальным и хешируемым.

dict() создаёт словарь из именованных аргументов или последовательности пар.

Доступ через dictionary[key] быстрый, но отсутствующий ключ вызывает KeyError.

Оператор in проверяет наличие ключа, а не значения.

update() добавляет новые пары и перезаписывает существующие ключи.

del и pop() удаляют по ключу; pop() ещё возвращает удалённое значение.

Топ-3 ошибки: создавать пустое множество через {}, хотя это пустой dict; использовать list или set как ключ словаря; читать отсутствующий ключ через [] без проверки.

Подготовка окружения

  1. Создайте папку lesson_34.
  2. Каждую задачу оформите отдельным файлом task_1.py, task_2.py и так далее.
  3. Запускайте файлы из терминала VS Code командой python task_1.py.
  4. После совпадения с примером измените входные данные и проверьте, что решение не привязано к одному случаю.

Домашнее задание 1. Не уникальные числа

Найдите все числа, встречающиеся более одного раза в списке, и выведите их в порядке убывания.

Данные: numbers = [4, 7, 3, 7, 8, 3, 4, 2, 7, 3, 8, 4]

numbers = [4, 7, 3, 7, 8, 3, 4, 2, 7, 3, 8, 4]
result = []

for number in sorted(set(numbers), reverse=True):
    if numbers.count(number) > 1:
        result.append(number)

print("Числа, встречающиеся более одного раза:", result)

Домашнее задание 2. Проверка подмножества

Проверьте, является ли один словарь подмножеством другого: все пары "ключ-значение" первого есть во втором.

Данные: dict1 = {"a": 1, "b": 2}; dict2 = {"a": 1, "b": 2, "c": 3}

dict1 = {"a": 1, "b": 2}
dict2 = {"a": 1, "b": 2, "c": 3}

is_subset = all(key in dict2 and dict2[key] == value for key, value in dict1.items())

if is_subset:
    print("Первый словарь является подмножеством второго.")
else:
    print("Первый словарь не является подмножеством второго.")