Python работа с множествами¶
Множества являются изменяемыми неупорядоченными типами данных. В множестве содержатся всегда только уникалльные элементы
Определение множества¶
В фигурных скобках {} идет перечисление элементов
set1 = {элемент1, элемент2, элемент3}
In [614]: set1 = {1,2,3,4,5,4,3,7,6}
In [615]: set1
Out[615]: {1, 2, 3, 4, 5, 6, 7}
In [616]: print(set1)
{1, 2, 3, 4, 5, 6, 7}
Работа со множествами¶
Получение множества из списка set()¶
In [617]: vlans1 = [1,2,3,4,5,4,3,7,6]
In [618]: set1 = set(vlans1)
In [619]: vlans1
Out[619]: [1, 2, 3, 4, 5, 4, 3, 7, 6]
In [620]: set1
Out[620]: {1, 2, 3, 4, 5, 6, 7}
Конвертация в список list()¶
In [627]: set1
Out[627]: {1, 2, 3, 4, 5, 6, 7}
In [628]: vlans_uni = list(set1)
In [629]: vlans_uni
Out[629]: [1, 2, 3, 4, 5, 6, 7]
Добавление элемента add()¶
In [632]: set1
Out[632]: {1, 2, 3, 4, 5, 6, 7}
In [633]: set1.add(8)
In [634]: set1
Out[634]: {1, 2, 3, 4, 5, 6, 7, 8}
# если попробовать добавить элемент,
# который уже есть в множестве, то множество не изменится
In [636]: set1.add(1)
In [637]: set1
Out[637]: {1, 2, 3, 4, 5, 6, 7, 8}
Удалить элемент discard()¶
In [637]: set1
Out[637]: {1, 2, 3, 4, 5, 6, 7, 8}
In [638]: set1.discard(7)
In [639]: set1
Out[639]: {1, 2, 3, 4, 5, 6, 8}
Удалить множество clear()¶
In [639]: set1
Out[639]: {1, 2, 3, 4, 5, 6, 8}
In [640]: set1.clear()
In [641]: set1
Out[641]: set()
Сделать копию copy()¶
In [649]: set1
Out[649]: {1, 2, 3, 4, 5, 6, 7}
In [650]: set2 = set1.copy()
In [651]: set2
Out[651]: {1, 2, 3, 4, 5, 6, 7}
Пересечение множеств & или intersection()¶
In [653]: set1 = {1,2,3,4,5}
In [654]: set2 = {2,3,20,30,40,50}
In [655]: set1 & set2
Out[655]: {2, 3}
# то же самое
In [657]: set1.intersection(set2)
Out[657]: {2, 3}
Объединения множеств | или union()¶
In [661]: set1 = {1,2,3,4,5}
In [662]: set2 = {2,3,20,30,40,50}
In [663]: set1 | set2
Out[663]: {1, 2, 3, 4, 5, 20, 30, 40, 50}
# то же самое
In [665]: set1.union(set2)
Out[665]: {1, 2, 3, 4, 5, 20, 30, 40, 50}
Разница в множествах difference() или вычитание множеств¶
In [666]: set1 = {1,2,3,4,5}
In [667]: set2 = {2,3,20,30,40,50}
# что есть в set1 и нет в set2
In [668]: set1.difference(set2)
Out[668]: {1, 4, 5}
# то же самое
In [673]: set1 - set2
Out[673]: {1, 4, 5}
# что есть в set2 и нет в set1
In [669]: set2.difference(set1)
Out[669]: {20, 30, 40, 50}
# то же самое
In [674]: set2 - set1
Out[674]: {20, 30, 40, 50}
```
Последнее обновление: 2023-05-29