💻 Примеры

⚡ Кратко: примеры

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

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

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

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

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

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

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

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

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

Уникальные длины слов

Классический пример из источника: дубликаты слов не создают дубликаты длин.

words = ["apple", "banana", "cherry", "apple"]
unique_lengths = {len(word) for word in words}
print(unique_lengths)

frozenset как ключ словаря

Набор прав удобно представить как неизменяемый ключ.

permissions = {
    frozenset(["read"]): "viewer",
    frozenset(["read", "write"]): "editor",
}

current_permissions = frozenset(["write", "read"])
print(permissions[current_permissions])

Инверсия словаря

Значения становятся ключами, ключи - значениями.

original_dict = {"a": 1, "b": 2, "c": 3}
inverted_dict = {}

for key in original_dict:
    inverted_dict[original_dict[key]] = key

print("Инверсированный словарь:", inverted_dict)

Замена чисел словами

Словарь сопоставлений используется как таблица перевода.

data = {"x": 1, "y": 2, "z": 3}
number_to_word = {1: "один", 2: "два", 3: "три"}

for key in data:
    if data[key] in number_to_word:
        data[key] = number_to_word[data[key]]

print(data)