<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 <h1>Содержание<span class="tocSkip"></span></h1>
<div class="toc"><ul class="toc-item"><li><span><a href="#Множество-(set)" data-toc-modified-id="Множество-(set)-1">Множество (set)</a></span><ul class="toc-item"><li><span><a href="#Создание-множества" data-toc-modified-id="Создание-множества-1.1">Создание множества</a></span><ul class="toc-item"><li><span><a href="#Приведение-к-списку" data-toc-modified-id="Приведение-к-списку-1.1.1">Приведение к списку</a></span></li><li><span><a href="#Генератор-множества" data-toc-modified-id="Генератор-множества-1.1.2">Генератор множества</a></span></li></ul></li><li><span><a href="#Стандартные-операции" data-toc-modified-id="Стандартные-операции-1.2">Стандартные операции</a></span><ul class="toc-item"><li><span><a href="#Вхождение-элемента-в-множество" data-toc-modified-id="Вхождение-элемента-в-множество-1.2.1">Вхождение элемента в множество</a></span></li><li><span><a href="#Удаление-элемента" data-toc-modified-id="Удаление-элемента-1.2.2">Удаление элемента</a></span></li><li><span><a href="#Размер-множества" data-toc-modified-id="Размер-множества-1.2.3">Размер множества</a></span></li><li><span><a href="#Проход-по-множеству" data-toc-modified-id="Проход-по-множеству-1.2.4">Проход по множеству</a></span></li></ul></li><li><span><a href="#Операции-над-двумя-множествами" data-toc-modified-id="Операции-над-двумя-множествами-1.3">Операции над двумя множествами</a></span><ul class="toc-item"><li><span><a href="#Объединение" data-toc-modified-id="Объединение-1.3.1">Объединение</a></span></li><li><span><a href="#Разность" data-toc-modified-id="Разность-1.3.2">Разность</a></span></li><li><span><a href="#Пересечение" data-toc-modified-id="Пересечение-1.3.3">Пересечение</a></span></li><li><span><a href="#Симметрическая-разность" data-toc-modified-id="Симметрическая-разность-1.3.4">Симметрическая разность</a></span></li><li><span><a href="#Сравнение" data-toc-modified-id="Сравнение-1.3.5">Сравнение</a></span></li></ul></li></ul></li><li><span><a href="#Словарь-(dict)" data-toc-modified-id="Словарь-(dict)-2">Словарь (dict)</a></span><ul class="toc-item"><li><span><a href="#Создание-словаря" data-toc-modified-id="Создание-словаря-2.1">Создание словаря</a></span></li><li><span><a href="#Стандартные-операции" data-toc-modified-id="Стандартные-операции-2.2">Стандартные операции</a></span><ul class="toc-item"><li><span><a href="#Добавление-элемента" data-toc-modified-id="Добавление-элемента-2.2.1">Добавление элемента</a></span></li><li><span><a href="#Изменение-элемента" data-toc-modified-id="Изменение-элемента-2.2.2">Изменение элемента</a></span></li><li><span><a href="#Удаление-элемента" data-toc-modified-id="Удаление-элемента-2.2.3">Удаление элемента</a></span></li><li><span><a href="#Обращение-к-элементам" data-toc-modified-id="Обращение-к-элементам-2.2.4">Обращение к элементам</a></span></li><li><span><a href="#Размер-словаря" data-toc-modified-id="Размер-словаря-2.2.5">Размер словаря</a></span></li><li><span><a href="#Проход-по-словарю" data-toc-modified-id="Проход-по-словарю-2.2.6">Проход по словарю</a></span></li></ul></li><li><span><a href="#Пример-использования" data-toc-modified-id="Пример-использования-2.3">Пример использования</a></span></li></ul></li></ul></div>
Контейнеры
Множество (set)
Set — это множество, в котором элементы не повторяются. Элементы множества никак не упорядочены.
Создание множества
Step1:  Приведение к списку
Можно приводить список к множеству или множество к списку
Step2:  Генератор множества
Step3:  Стандартные операции
Вхождение элемента в множество
Чтобы проверить, находится ли элемент в множестве, можно использовать оператор in. В среднем такая проверка занимает O(1).
Step4:  Удаление элемента
Удаление элемента из множества, в среднем за O(1)
Step5:  Размер множества
Вычисление размера (мощности) множества
Step6:  Проход по множеству
Step7:  Операции над двумя множествами
Объединение
В объединение входят элементы, которые есть или в первом, или во втором множестве. В среднем работает за O(len(A) + len(B)).
Step8:  Разность
Из элементов первого множества вычёркиваются элементы второго множества. В среднем работает за O(len(A)).
Step9:  Пересечение
В пересечение входят только те элементы, которые есть и в первом, и во втором множестве. В среднем работает за O(min(len(A), len(B))).
Step10:  Симметрическая разность
Элементы входят либо только в первое, либо только во второе множество. В среднем работает за O(len(A) + len(B)).
Step11:  Сравнение
В питоне два множества можно сравнить. Множество A меньше множества B, если все элементы множества A содержатся в множестве B, и при этом A != B. Сравнения выполняются за O(len(A) + len(B)).
Step12:  Словарь (dict)
Словари — это пары (ключ, значение).
Создание словаря
Step13:  Стандартные операции
Добавление элемента
Step14:  Изменение элемента
Step15:  Удаление элемента
Step16:  Обращение к элементам
Step17:  Размер словаря
Step18:  Проход по словарю
dict.items() - кортежи из пар (ключ, значение)
dict.keys() - список ключей
dict.values() - список значений
Step19:  Пример использования
<ASSISTANT_TASK:>
Python Code:
a = set()
a.add(3)  # Добавление элемента, O(1)
b = {5}
print(a, b)
c = {4, 4, 2, 6}  # Элементы не повторяются
print(c)  # Порядок элементов не важен
Explanation: <h1>Содержание<span class="tocSkip"></span></h1>
<div class="toc"><ul class="toc-item"><li><span><a href="#Множество-(set)" data-toc-modified-id="Множество-(set)-1">Множество (set)</a></span><ul class="toc-item"><li><span><a href="#Создание-множества" data-toc-modified-id="Создание-множества-1.1">Создание множества</a></span><ul class="toc-item"><li><span><a href="#Приведение-к-списку" data-toc-modified-id="Приведение-к-списку-1.1.1">Приведение к списку</a></span></li><li><span><a href="#Генератор-множества" data-toc-modified-id="Генератор-множества-1.1.2">Генератор множества</a></span></li></ul></li><li><span><a href="#Стандартные-операции" data-toc-modified-id="Стандартные-операции-1.2">Стандартные операции</a></span><ul class="toc-item"><li><span><a href="#Вхождение-элемента-в-множество" data-toc-modified-id="Вхождение-элемента-в-множество-1.2.1">Вхождение элемента в множество</a></span></li><li><span><a href="#Удаление-элемента" data-toc-modified-id="Удаление-элемента-1.2.2">Удаление элемента</a></span></li><li><span><a href="#Размер-множества" data-toc-modified-id="Размер-множества-1.2.3">Размер множества</a></span></li><li><span><a href="#Проход-по-множеству" data-toc-modified-id="Проход-по-множеству-1.2.4">Проход по множеству</a></span></li></ul></li><li><span><a href="#Операции-над-двумя-множествами" data-toc-modified-id="Операции-над-двумя-множествами-1.3">Операции над двумя множествами</a></span><ul class="toc-item"><li><span><a href="#Объединение" data-toc-modified-id="Объединение-1.3.1">Объединение</a></span></li><li><span><a href="#Разность" data-toc-modified-id="Разность-1.3.2">Разность</a></span></li><li><span><a href="#Пересечение" data-toc-modified-id="Пересечение-1.3.3">Пересечение</a></span></li><li><span><a href="#Симметрическая-разность" data-toc-modified-id="Симметрическая-разность-1.3.4">Симметрическая разность</a></span></li><li><span><a href="#Сравнение" data-toc-modified-id="Сравнение-1.3.5">Сравнение</a></span></li></ul></li></ul></li><li><span><a href="#Словарь-(dict)" data-toc-modified-id="Словарь-(dict)-2">Словарь (dict)</a></span><ul class="toc-item"><li><span><a href="#Создание-словаря" data-toc-modified-id="Создание-словаря-2.1">Создание словаря</a></span></li><li><span><a href="#Стандартные-операции" data-toc-modified-id="Стандартные-операции-2.2">Стандартные операции</a></span><ul class="toc-item"><li><span><a href="#Добавление-элемента" data-toc-modified-id="Добавление-элемента-2.2.1">Добавление элемента</a></span></li><li><span><a href="#Изменение-элемента" data-toc-modified-id="Изменение-элемента-2.2.2">Изменение элемента</a></span></li><li><span><a href="#Удаление-элемента" data-toc-modified-id="Удаление-элемента-2.2.3">Удаление элемента</a></span></li><li><span><a href="#Обращение-к-элементам" data-toc-modified-id="Обращение-к-элементам-2.2.4">Обращение к элементам</a></span></li><li><span><a href="#Размер-словаря" data-toc-modified-id="Размер-словаря-2.2.5">Размер словаря</a></span></li><li><span><a href="#Проход-по-словарю" data-toc-modified-id="Проход-по-словарю-2.2.6">Проход по словарю</a></span></li></ul></li><li><span><a href="#Пример-использования" data-toc-modified-id="Пример-использования-2.3">Пример использования</a></span></li></ul></li></ul></div>
Контейнеры
Множество (set)
Set — это множество, в котором элементы не повторяются. Элементы множества никак не упорядочены.
Создание множества
End of explanation
lst = [8, 1, 3, 3, 8]
a = set(lst)  # Приведение списка к множеству (выкинули повторения)
print(a)
print(list(a))  # Приведение множества к списку
Explanation: Приведение к списку
Можно приводить список к множеству или множество к списку:
End of explanation
a = {i ** 2 for i in range(10)}
print(a)
Explanation: Генератор множества
End of explanation
b = {4, 5}
print(b)
print(5 in b)
if 8 in b:
    print("YES")
else:
    print("NO")
Explanation: Стандартные операции
Вхождение элемента в множество
Чтобы проверить, находится ли элемент в множестве, можно использовать оператор in. В среднем такая проверка занимает O(1).
End of explanation
a = {1, 2, 4, 5, 6}
a.discard(5)
print(a)
a.remove(4)
print(a)
a.discard(8000)  # Игнорирует команду, если элемента нет
print(a)
a.remove(8000)  # Кидает ошибку, если элемента нет
print(a)
Explanation: Удаление элемента
Удаление элемента из множества, в среднем за O(1):
End of explanation
b = {4, 5}
print(len(b))
Explanation: Размер множества
Вычисление размера (мощности) множества:
End of explanation
a = {1, 2, 6, 9, 3}
for elem in a:
    print(elem, end=" ")
print()
while a:
    elem = a.pop()  # Вытаскивает элемент из множества
    print(elem, end=" ")
Explanation: Проход по множеству
End of explanation
a = {2, 3, 4}
b = {5, 2}
print(a | b)
Explanation: Операции над двумя множествами
Объединение
В объединение входят элементы, которые есть или в первом, или во втором множестве. В среднем работает за O(len(A) + len(B)).
End of explanation
a = {2, 3, 4}
b = {5, 2}
print(a - b)
Explanation: Разность
Из элементов первого множества вычёркиваются элементы второго множества. В среднем работает за O(len(A)).
End of explanation
a = {2, 3, 4}
b = {5, 2}
print(a & b)
Explanation: Пересечение
В пересечение входят только те элементы, которые есть и в первом, и во втором множестве. В среднем работает за O(min(len(A), len(B))).
End of explanation
a = {2, 3, 4}
b = {5, 2}
print(a ^ b)
Explanation: Симметрическая разность
Элементы входят либо только в первое, либо только во второе множество. В среднем работает за O(len(A) + len(B)).
End of explanation
a = {2, 3, 4}
b = {3, 4}
# Сравнения
print(a < b)
print(a > b)
print(a >= b)
print(a == b)
Explanation: Сравнение
В питоне два множества можно сравнить. Множество A меньше множества B, если все элементы множества A содержатся в множестве B, и при этом A != B. Сравнения выполняются за O(len(A) + len(B)).
End of explanation
a = {}
b = {1: 3, "4": 8}
c = dict()
d = dict(((1, 2), ("a", 13)))
e = dict(one=1, two=2)
print(a, b, c, d, e, sep="\n", end="\n\n")
Explanation: Словарь (dict)
Словари — это пары (ключ, значение).
Создание словаря
End of explanation
a = {}
a['hello'] = 'world'  # Добавление элемента, O(1)
print(a)
Explanation: Стандартные операции
Добавление элемента
End of explanation
a = {'one': 1, 'two': 2}
a['one'] = 8  # Изменение элемента, O(1)
print(a)
Explanation: Изменение элемента
End of explanation
a = {'one': 1, 'two': 2}
a.pop('two')  # Удаление элемента, O(1)
print(a)
Explanation: Удаление элемента
End of explanation
b = {1: 3, '4': 8, 'a': 13}
print(b[1], b['a'], b.get('4'))  # Существующие элементы
print(b.get('8'), b.get('three', 0))  # Несуществующие элементы со значением по умолчанию
print(b[0])  # b[0] - KeyError
Explanation: Обращение к элементам
End of explanation
a = {"a": 18, "b": 10, "c": 13}
print(len(a))
Explanation: Размер словаря
End of explanation
a = {"a": 18, "b": 10, "c": 13}
for x, y in a.items():
    print("%s: %s" % (x, y))
print()
for x in a.keys():
    print(x, end=" ")
print()
for x in a.values():
    print(x, end=" ")
print()
Explanation: Проход по словарю
dict.items() - кортежи из пар (ключ, значение)
dict.keys() - список ключей
dict.values() - список значений
End of explanation
to_sort = ["5", "2", "2", "2", "1", "1", "1", "0", "3", "3", "2", "2", "5", "5", "5", "3", "1"]
count_sort = {}
for elem in to_sort:
    count_sort[elem] = count_sort.get(elem, 0) + 1
print(count_sort)
Explanation: Пример использования
End of explanation
<END_TASK>