Предыдущий урок: Кортежи (tuple)
Множества — неупорядоченная и не индексируемая последовательность. В Python множества пишутся в фигурных скобках.
Создание множества:
thisset = {"set", "list", "tuple"}
print(thisset)
Вывод:
{'set', 'tuple', 'list'}
Примечание. Они не упорядочены, поэтому элементы будут отображаться в произвольном порядке.
Множество хранит только уникальные элементы:
thisset = {"set", "list", "tuple", "list"}
print(thisset)
Вывод:
{'set', 'tuple', 'list'}
Доступ к элементам
Вы не можете получить доступ к элементам множествах по индексу, так как они не упорядочены, а элементы без индекса. Но вы можете проходить по множеству с помощью цикла for
или уточнять есть ли значение в множестве, используя оператор in
.
Выведем каждый элемент множества:
thisset = {"set", "list", "tuple"}
for x in thisset:
print(x)
Вывод:
set
list
tuple
Проверим присутствует ли "dict"
этой последовательности:
thisset = {"set", "list", "tuple"}
print("dict" in thisset)
Вывод:
False
Изменение элементов
Вы не можете менять элементы set, но можете добавлять новые.
Добавить элементы
Чтобы добавить один элемент в set используйте метод add()
.
Чтобы добавить больше одного — метод update()
.
thisset = {"set", "list", "tuple"}
thisset.add("dict")
print(thisset)
Вывод:
{'tuple', 'set', 'list', 'dict'}
Добавьте несколько элементов в thisset
, используя метод update()
:
thisset = {"set", "list", "tuple"}
thisset.update(["dict", "class", "int"])
print(thisset)
Вывод:
{'dict', 'tuple', 'set', 'list', 'class', 'int'}
Получите длину set
Чтобы определить сколько элементов есть в наборе, воспользуйтесь методом len()
.
thisset = {"set", "list", "tuple"}
print(len(thisset))
Вывод:
3
Удаление элементов
Чтобы удалить элемент в множестве, воспользуйтесь методом remove()
, или discard()
.
Уберем «list» используя метод remove()
:
thisset = {"set", "list", "tuple"}
thisset.remove("list")
print(thisset)
Вывод:
{'tuple', 'set'}
Примечание: Если элемент, который нужно удалить не существует, remove()
вызовет ошибку.
Убрать “list” используя метод discard()
:
thisset = {"set", "list", "tuple"}
thisset.discard("list")
print(thisset)
Вывод:
{'tuple', 'set'}
Примечание. Если элемент для удаления не существует, discard()
не будет вызывать ошибку.
Вы также можете использовать метод pop()
— для удаления элемента, но он удалит только последний элемент. Помните, что set не упорядочены, поэтому вы не будите знать, какой элемент удаляете.
Возвращаемое значение метода pop ()
— это удаленный элемент.
thisset = {"set", "list", "tuple"}
x = thisset.pop()
print(x)
print(thisset)
Вывод:
list
{'tuple', 'set'}
Метод clear()
очистит множество:
thisset = {"set", "list", "tuple"}
thisset.clear()
print(thisset)
Вывод:
set()
Ключевое слово del
полностью удалит множество:
thisset = {"set", "list", "tuple"}
del thisset
print(thisset) # эта команда вызовет ошибку, так как thisset больше не существует
Конструктор set()
Есть так же возможность использовать конструктор set()
для создания множества.
thisset = set(("set", "list", "tuple")) # Используем двойные скобки
print(thisset)
Вывод:
{'set', 'tuple', 'list'}
Методы Set
В Python есть встроенные методы, с помощью которых вы можете работать с sets.
Метод | Значение |
---|---|
add(x) | Добавляет элементы x в set |
clear() | Удаляет элементы из set |
copy() | Возвращает копию set |
x.difference(y) | Возвращает множество элементов, которые есть в х, но нет в y |
x.difference_update(y) | Удаляет элементы, которые есть в x и y |
discard(x) | Удаляет указанный элемент |
x.intersection(y) | Возвращает множество, являющийся пересечением x и y |
intersection_update(y) | Удаляет элементы в множестве, которых нет в других заданных y |
x.isdisjoint(y) | True, если x и y не имеют общих элементов |
x.issubset(y) | True, если все элементы из x есть в y |
issuperset() | True, если все элементы из y есть в x |
pop() | Удаляет и возвращает последний элемент |
remove() | Удаляет указанный элемент |
x.symmetric_difference(y) | Возвращает множество элементов, которые не пересекаются в х и y |
symmetric_difference_update() | Добавляет элементы, которых нет в другом множестве |
union() | Объединяет несколько множеств |
x.update(y, z) | Объединяет несколько множеств, перезаписывая x |
Далее: Словарь (dict)