Множество (set)
set - множество. В нем нет одинаковых элементов. Его можно изменять.
frozenset - множество. В нем нет одинаковых элементов. Его НЕЛЬЗЯ изменять.

порядок перебора элементов множества не определен.
Создание множества

множество пишем в { }
a = [1, 5, 17, 5, -22, 4, 4, 4] # сделали list
print(a) # 1 5 17 5 -22 4 4 4
b = set(a) # сделали set из list
print(b) # 1 5 17 -22 4
c = {1, 5, 17, 5, -22, 4, 4, 4} # сделали set
print(c)
d = {} # это не set, это dict
Методы множества
a = {1, 3, 5, 11, 12, 13}
b = {5, 1, 3, 21, 22, 23}
c = {1, 3, 5}
d = {3, 1, 5}
w = {2, 8}
Операция | Значение | Результат  |
x in a | элемент х в множестве а | |
x not in a | элемент х НЕ в множестве а | |
a.isdisjoint(w) | True, если у множеств нет общих элементов | |
c == d | множества с и d равны | |
с < a | c содержится в множестве a, но не равно ему | |
с <= a | c содержится в множестве a | |
a > c | a содержит в себе c | |
a >= c | a содержит в себе c, но не равно ему | |
a.copy() | копия множества | |
a.add(7) | добавить 7 в множество a | |
a.remove(5) | удалить 5 из множества а | |
a.clear() | удалить все элементы из а | |
len(a) | число элементов в множестве | 6 |
a | b | объединение множеств | {1, 3, 5, 11, 12, 13, 21, 22, 23} |
a & b | пересечение множеств | {1, 3, 5} |
a - c | вычитание | {11, 12, 13} |
Задачи
Однострочники
- Сколько в списке уникальных элементов?
- Напечатать только уникальные элементы из списка в том порядке, как они встречаются в списке
В обработке логов
- Сколько разных покупателей в bet.log
- Сколько разных действий в tr.log
- Какие коды возврата http были получены в http.log