Задание множеств

A = set()  # Пустое множество
A = {1, 2, 'hello'}  # Явное перечисление элементов
A = set('hello')  # Множество букв в строке
B = [1, 2, 1, 2]; A = set(B)  # Множество из списка или любого итерируемого объекта
A = {i**2 for i in range(10)}  # Генератор множеств

Работа с элементами множеств

C = {1, 2, 'hello'}
for elem in C:  # Перебираем все элементы множества
    print(elem)
sorted(C)  # Список из отсортированных элементов множества
1 in C  # Проверка принадлежности
A.add(3)  # Добавление элемента
A.remove(3)  # Удаление элемента, который есть в множестве
A.discard(4)  # Удаление элемента, которого может не быть в множестве
A.pop()  # Извлечение случайного элемента из множества с удалением его

Операции с множествами

len(A)  # Количество элементов в множестве
A | B  # Возвращает множество, являющееся объединением множеств A и B.
A |= B  # Добавляет в множество A все элементы из множества B.
A & B  # Возвращает множество, являющееся пересечением множеств A и B.
A &= B  # Оставляет в множестве A только те элементы, которые есть в множестве B.
A - B  # Возвращает разность множеств A и B (A, но не B).
A -= B  # Удаляет из множества A все элементы, входящие в B.
A ^ B  # Возвращает симметрическую  разность множеств A и B.
A ^= B  # Записывает в A симметрическую разность множеств A и B.
A <= B  # Возвращает true, если A является подмножеством B.
A >= B  # Возвращает true, если B является подмножеством A.
A < B  # Эквивалентно A <= B and A != B
A > B  # Эквивалентно A >= B and A != B

Задание словарей

D = {}  # Пустой словарь
D = {1: 'a', 2: 'b'}  # Явное перечисление
D = dict([(1, 'a'), (2, 'b')])  # Словарь из списка пар элементов
D = dict(zip([1, 2], ['a', 'b']))  # Словарь из итерируемого объекта, возвращающего пары элементов (ключ-значение)
D = {i: chr(i + ord('a')) for i in range(1, 3)}  # Генератор словарей

Работа с элементами словаря

len(D)  # Количество элементов в словаре
D[key]  # Поиск по ключу, который есть в словаре
key in D  # Проверка принадлежности словарю
D[key] = value  # Установка или изменение значения
del D[key]  # Удаление ключа, который есть в словаре
value = D.pop(key)  # Удаления ключа вместе с возвращением значения
value = D.pop(key, no_key_value)  # Удаления ключа вместе с возвращением значения. Если ключа нет, то no_key_value
key, value = D.popitem()  # Извлечение из словаря пары (ключ, значение) с удалением ключа
D.get(key, no_key_value)  # Значение по ключу, no_key_value, если ключа нет
D[key] = D.get(key, 0) + 1  # Самая простая реализация счётчика
for key in D:  # Перебираем все ключи
    print(key, D[key])
for key, value in D.items():  # Перебираем все пары (ключ, значение)
    print(key, value)
for value in D.values():  # Перебор всех значений
    print(value)
sorted(D)  # Отсортированный список ключей
sorted(D.values())  # Отсортированный список значений
sorted(D.items())  # Отсортированный по ключу список пар (ключ, значение)
sorted(D.items(), key=lambda x: x[1])  # Отсортированный по значению список пар (ключ, значение)