Python — set methods
Содержание:
- Операции
- Создание наборов в Python
- What is a set
- Методы в наборах
- Set Operations in Python
- Dict comprehensions (генераторы словарей)¶
- Set Methods
- Объединение множеств
- Убрать предмет
- Set Operations in Python
- Удаление элемента из множеств
- Отношения между множествами
- Set Operations
- 3.2. Математические операции с множествами Python
- Remove Set items
- Example Code
- Python Set
- Добавление и удаление элементов
- Список
- Subsets and supersets
- Python set built-in functions
Операции
Как и обычные наборы, frozenset может также выполнять различные операции, такие как копирование, различие, пересечение, симметричное_различие и объединение.
# Frozensets # initialize A and B A = frozenset() B = frozenset() # copying a frozenset C = A.copy() # Output: frozenset({1, 2, 3, 4}) print(C) # union print(A.union(B)) # Output: frozenset({1, 2, 3, 4, 5, 6}) # intersection print(A.intersection(B)) # Output: frozenset({3, 4}) # difference print(A.difference(B)) # Output: frozenset({1, 2}) # symmetric_difference print(A.symmetric_difference(B)) # Output: frozenset({1, 2, 5, 6})
Выход
frozenset({1, 2, 3, 4}) frozenset({1, 2, 3, 4, 5, 6}) frozenset({3, 4}) frozenset({1, 2}) frozenset({1, 2, 5, 6})
Точно так же доступны другие методы набора, такие как isdisjoint, issubset и Issueperset.
# Frozensets # initialize A, B and C A = frozenset() B = frozenset() C = frozenset() # isdisjoint() method print(A.isdisjoint(C)) # Output: True # issubset() method print(C.issubset(B)) # Output: True # issuperset() method print(B.issuperset(C)) # Output: True
Выход
True True True
Было полезно224
Нет28
172cookie-checkset и frozenset() в Python
Создание наборов в Python
Набор может быть создан путем размещения всех элементов в фигурных скобках {}, разделенные запятой. Они также могут быть созданы с помощью встроенного функции Отказ
Элементы могут быть разных типов данных, но набор не поддерживает смежные элементы. Наборы неупорядочены, поэтому никто не может быть уверен в порядке элементов, в которых они появятся.
Пример: создание наборов
Days=set() Fruits = {"apple", "banana", "cherry"} Name=set('Quit') print(Name) print(Fruits) print(Days)
Выход :
{‘u’, ‘q’, ‘I’, ‘T’} {‘Cherry’, «Банана», «Apple»} {«Солнце», «ср», «пн», «Чт», «Вт» , «Сет», «Фри»}
Рекомендуемые показания:
- Список в Python
- Массив в Python
- Python Tupple.
What is a set
Set in Python is a data structure
equivalent to sets in mathematics. It may consist
of various elements; the order of elements in a set is undefined.
You can add and delete elements of a set, you can iterate
the elements of the set, you can perform standard operations on sets
(union, intersection, difference). Besides that, you can check if an element belongs to a set.
Unlike arrays, where the elements are stored as ordered
list, the order of elements in a set is undefined (moreover,
the set elements are usually not stored in order of appearance in the set; this allows checking if an element belongs to a set faster than just going through all the elements of the set).
Any immutable data type can be an element of a set:
a number, a string, a tuple. Mutable (changeable) data types cannot be
elements of the set. In particular, list cannot be an element of a set (but tuple can), and another set cannot be an element of a set. The requirement of immutability follows from the way how do computers represent sets in memory.
Методы в наборах
добавлять() | Добавляет элемент на набор |
Чисто() | Удаляет все элементы из набора |
Копировать () | Возвращает копию набора |
разница() | Возвращает набор, содержащий разницу между двумя или более наборами |
Разница_update () | Удаляет элементы в этом наборе, которые также включены в другой, указанный набор |
отказаться() | Удалить указанный элемент |
Пересечение () | Возвращает набор, это пересечение двух других наборов |
Intersection_Update () | Удаляет элементы в этом наборе, которые нет в других, указанных наборах (ов) |
iSdisjoint () | Возвращает, имеют ли два набора пересечения или нет |
issubset () | Возвращает, содержит ли другой набор этот набор или нет |
ОСУПЕРСЕТ () | Возвращает, содержит ли этот набор другой набор или нет |
поп () | Удаляет элемент из набора |
Удалить() | Удаляет указанный элемент |
Symmetric_difference () | Возвращает множество с симметричными различиями двух наборов |
Symmetric_difference_update () | Вставляет симметричные различия от этого набора и другого |
Союз () | Верните набор, содержащий объединение наборов |
Обновить() | Обновите набор с объединением этого набора и других |
Set Operations in Python
Sets are used to carry out mathematical functionality set operations such as union, difference, intersection, and symmetric difference.
Set Union – Inclusion of all elements from both the sets.
Union operation is performed by either of the following methods:
- By using operator
- By using method
Example: Union of Sets
X = {1, 2, 3} Y = {6, 7, 8} print(X | Y) print(Y.union(X))
Output:
{1, 2, 3, 6, 7, 8} {1, 2, 3, 6, 7, 8}
Set Intersection – Inclusion of elements that are common to both the sets.
Intersection operation is performed by either of the following methods:
- By using operator
- By using ) method
Example: Intersection of Sets
X = {1, 2, 3} Y = {3, 2, 8} print(X & Y) print(Y.intersection(X))
Output:
{2, 3} {2, 3}
Set Difference – Inclusion of elements from either of the sets.
(A – B) contains the elements that are only in set A but not in set B.
(B – A) contains the elements that are only in set B but not in set A.
Difference operation is performed by either of the following methods:
- By using operator
- By using method
Example: Difference of Sets
X = {1, 2, 3} Y = {3, 2, 8} print(X - Y) print(Y.difference(X))
Output:
{1} {8}
Symmetric Difference operation is performed by either of the following methods:
- By using operator
- By using method
Example: Symmetric Difference of Sets
X = {1, 2, 3, 9, 0} Y = {3, 2, 8, 7, 5} print(X ^ Y) print(Y.symmetric_difference(X))
Output:
{0, 1, 5, 7, 8, 9} {0, 1, 5, 7, 8, 9}
Dict comprehensions (генераторы словарей)¶
Генераторы словарей аналогичны генераторам списков, но они используются
для создания словарей.
Например, такое выражение:
In 27]: d = {} In 28]: for num in range(1, 11): ... dnum = num**2 ... In 29]: print(d) {1 1, 2 4, 3 9, 4 16, 5 25, 6 36, 7 49, 8 64, 9 81, 10 100}
Можно заменить генератором словаря:
In 30]: d = {num num**2 for num in range(1, 11)} In 31]: print(d) {1 1, 2 4, 3 9, 4 16, 5 25, 6 36, 7 49, 8 64, 9 81, 10 100}
Еще один пример, в котором надо преобразовать существующий словарь и
перевести все ключи в нижний регистр. Для начала, вариант решения без
генератора словаря:
In 32]: r1 = {'IOS' '15.4', ... 'IP' '10.255.0.1', ... 'hostname' 'london_r1', ... 'location' '21 New Globe Walk', ... 'model' '4451', ... 'vendor' 'Cisco'} ... In 33]: lower_r1 = {} In 34]: for key, value in r1.items(): ... lower_r1key.lower()] = value ... In 35]: lower_r1 Out35]: {'hostname' 'london_r1', 'ios' '15.4', 'ip' '10.255.0.1', 'location' '21 New Globe Walk', 'model' '4451', 'vendor' 'Cisco'}
Аналогичный вариант с помощью генератора словаря:
In 36]: r1 = {'IOS' '15.4', ... 'IP' '10.255.0.1', ... 'hostname' 'london_r1', ... 'location' '21 New Globe Walk', ... 'model' '4451', ... 'vendor' 'Cisco'} ... In 37]: lower_r1 = {key.lower(): value for key, value in r1.items()} In 38]: lower_r1 Out38]: {'hostname' 'london_r1', 'ios' '15.4', 'ip' '10.255.0.1', 'location' '21 New Globe Walk', 'model' '4451', 'vendor' 'Cisco'}
Как и list comprehensions, dict comprehensions можно делать вложенными.
Попробуем аналогичным образом преобразовать ключи во вложенных словарях:
In 39]: london_co = { ... 'r1' { ... 'hostname' 'london_r1', ... 'location' '21 New Globe Walk', ... 'vendor' 'Cisco', ... 'model' '4451', ... 'IOS' '15.4', ... 'IP' '10.255.0.1' ... }, ... 'r2' { ... 'hostname' 'london_r2', ... 'location' '21 New Globe Walk', ... 'vendor' 'Cisco', ... 'model' '4451', ... 'IOS' '15.4', ... 'IP' '10.255.0.2' ... }, ... 'sw1' { ... 'hostname' 'london_sw1', ... 'location' '21 New Globe Walk', ... 'vendor' 'Cisco', ... 'model' '3850', ... 'IOS' '3.6.XE', ... 'IP' '10.255.0.101' ... } ... } In 40]: lower_london_co = {} In 41]: for device, params in london_co.items(): ... lower_london_codevice = {} ... for key, value in params.items(): ... lower_london_codevice] = value ... In 42]: lower_london_co Out42]: {'r1' {'hostname' 'london_r1', 'ios' '15.4', 'ip' '10.255.0.1', 'location' '21 New Globe Walk', 'model' '4451', 'vendor' 'Cisco'}, 'r2' {'hostname' 'london_r2', 'ios' '15.4', 'ip' '10.255.0.2', 'location' '21 New Globe Walk', 'model' '4451', 'vendor' 'Cisco'}, 'sw1' {'hostname' 'london_sw1', 'ios' '3.6.XE', 'ip' '10.255.0.101', 'location' '21 New Globe Walk', 'model' '3850', 'vendor' 'Cisco'}}
Аналогичное преобразование с dict comprehensions:
Set Methods
Python has a set of built-in methods that you can use on sets.
Method | Description |
---|---|
add() | Adds an element to the set |
clear() | Removes all the elements from the set |
copy() | Returns a copy of the set |
difference() | Returns a set containing the difference between two or more sets |
difference_update() | Removes the items in this set that are also included in another, specified set |
discard() | Remove the specified item |
intersection() | Returns a set, that is the intersection of two other sets |
intersection_update() | Removes the items in this set that are not present in other, specified set(s) |
isdisjoint() | Returns whether two sets have a intersection or not |
issubset() | Returns whether another set contains this set or not |
issuperset() | Returns whether this set contains another set or not |
pop() | Removes an element from the set |
remove() | Removes the specified element |
symmetric_difference() | Returns a set with the symmetric differences of two sets |
symmetric_difference_update() | inserts the symmetric differences from this set and another |
union() | Return a set containing the union of sets |
update() | Update the set with the union of this set and others |
❮ Previous
Next ❯
Объединение множеств
Предположим, у нас есть два множества, А и В. Объединение этих двух множеств — это множество со всеми элементами обеих множеств. Такая операция выполняется при помощи функции Python под названием .
Рассмотрим пример:
Python
months_a = set()
months_b = set()
all_months = months_a.union(months_b)
print(all_months)
1 2 3 4 5 |
months_a=set(«Jan»,»Feb»,»March»,»Apr»,»May»,»June») months_b=set(«July»,»Aug»,»Sep»,»Oct»,»Nov»,»Dec») all_months=months_a.union(months_b) print(all_months) |
Результат:
Python
{‘Oct’, ‘Jan’, ‘Nov’, ‘May’, ‘Aug’, ‘Feb’, ‘Sep’, ‘March’, ‘Apr’, ‘Dec’, ‘June’, ‘July’}
1 | {‘Oct’,’Jan’,’Nov’,’May’,’Aug’,’Feb’,’Sep’,’March’,’Apr’,’Dec’,’June’,’July’} |
Объединение может состоять из более чем двух множеств, и все их элементы сложатся в одно большое множество. Например:
Python
x = {1, 2, 3}
y = {4, 5, 6}
z = {7, 8, 9}
output = x.union(y, z)
print(output)
1 2 3 4 5 6 7 |
x={1,2,3} y={4,5,6} z={7,8,9} output=x.union(y,z) print(output) |
Результат:
Python
{1, 2, 3, 4, 5, 6, 7, 8, 9}
1 | {1,2,3,4,5,6,7,8,9} |
При выполнении операции объединения, дубликаты игнорируются, так что только один из двух элементов дубликатов будет отображаться. Например:
Python
x = {1, 2, 3}
y = {4, 3, 6}
z = {7, 4, 9}
output = x.union(y, z)
print(output)
1 2 3 4 5 6 7 |
x={1,2,3} y={4,3,6} z={7,4,9} output=x.union(y,z) print(output) |
Результат:
Python
{1, 2, 3, 4, 6, 7, 9}
1 | {1,2,3,4,6,7,9} |
Оператор может также использоваться при поиске объединения двух или более множеств. Например:
Python
months_a = set()
months_b = set()
print(months_a | months_b)
1 2 3 4 |
months_a=set(«Jan»,»Feb»,»March»,»Apr»,»May»,»June») months_b=set(«July»,»Aug»,»Sep»,»Oct»,»Nov»,»Dec») print(months_a|months_b) |
Результат:
Python
{‘Feb’, ‘Apr’, ‘Sep’, ‘Dec’, ‘Nov’, ‘June’, ‘May’, ‘Oct’, ‘Jan’, ‘July’, ‘March’, ‘Aug’}
1 | {‘Feb’,’Apr’,’Sep’,’Dec’,’Nov’,’June’,’May’,’Oct’,’Jan’,’July’,’March’,’Aug’} |
Если вы хотите создать объединение из более двух множеств, разделите названия множеств при помощи оператора . Взглянем на пример:
Python
x = {1, 2, 3}
y = {4, 3, 6}
z = {7, 4, 9}
print(x | y | z)
1 2 3 4 5 |
x={1,2,3} y={4,3,6} z={7,4,9} print(x|y|z) |
Результат:
Python
{1, 2, 3, 4, 6, 7, 9}
1 | {1,2,3,4,6,7,9} |
Убрать предмет
Чтобы удалить элемент в наборе, используйте метод или .
Remove «banana» by using the
method:
thisset = {«apple», «banana», «cherry»}
thisset.remove(«banana»)
print(thisset)
Примечание. Если элемент для удаления не существует, вызовет ошибку.
Remove «banana» by using the
method:
thisset = {«apple», «banana», «cherry»}
thisset.discard(«banana»)
print(thisset)
Примечание. Если элемент для удаления не существует, будет НЕ вызывает ошибку.
Вы также можете использовать метод для удаления элемент, но этот метод удалит последний элемент. Помните, что наборы не упорядочены, поэтому вы не будете знать, какой элемент будет удален.
Возвращаемое значение метода — это удаленный элемент.
Remove the last item by using the
method:
thisset = {«apple», «banana», «cherry»}
x =
thisset.pop()
print(x)
print(thisset)
Примечание. Наборы неупорядочены , поэтому при использовании метода вы не знаете, какой элемент удаляется.
Set Operations in Python
Sets are used to carry out mathematical functionality set operations such as union, difference, intersection, and symmetric difference.
Set Union – Inclusion of all elements from both the sets.
Union operation is performed by either of the following methods:
- By using operator
- By using method
Example: Union of Sets
X = {1, 2, 3} Y = {6, 7, 8} print(X | Y) print(Y.union(X))
Output:
{1, 2, 3, 6, 7, 8} {1, 2, 3, 6, 7, 8}
Set Intersection – Inclusion of elements that are common to both the sets.
Intersection operation is performed by either of the following methods:
- By using operator
- By using ) method
Example: Intersection of Sets
X = {1, 2, 3} Y = {3, 2, 8} print(X & Y) print(Y.intersection(X))
Output:
{2, 3} {2, 3}
Set Difference – Inclusion of elements from either of the sets.
(A – B) contains the elements that are only in set A but not in set B.
(B – A) contains the elements that are only in set B but not in set A.
Difference operation is performed by either of the following methods:
- By using operator
- By using method
Example: Difference of Sets
X = {1, 2, 3} Y = {3, 2, 8} print(X - Y) print(Y.difference(X))
Output:
{1} {8}
Symmetric Difference operation is performed by either of the following methods:
- By using operator
- By using method
Example: Symmetric Difference of Sets
X = {1, 2, 3, 9, 0} Y = {3, 2, 8, 7, 5} print(X ^ Y) print(Y.symmetric_difference(X))
Output:
{0, 1, 5, 7, 8, 9} {0, 1, 5, 7, 8, 9}
Удаление элемента из множеств
Python позволяет нам удалять элемент из множества, но не используя индекс, так как множество элементов не индексированы. Элементы могут быть удалены при помощи обоих методов и .
Помните, что метод не будет выдавать ошибку, если элемент не был найден во множестве. Однако, если метод используется и элемент не был найден, возникнет ошибка.
Давайте продемонстрируем как удалять элемент при помощи метода :
Python
num_set = {1, 2, 3, 4, 5, 6}
num_set.discard(3)
print(num_set)
1 2 3 |
num_set={1,2,3,4,5,6} num_set.discard(3) print(num_set) |
Результат:
Python
{1, 2, 4, 5, 6}
1 | {1,2,4,5,6} |
Элемент был удален из множества.
Аналогично, метод может использоваться следующим образом:
Python
num_set = {1, 2, 3, 4, 5, 6}
num_set.remove(3)
print(num_set)
1 2 3 |
num_set={1,2,3,4,5,6} num_set.remove(3) print(num_set) |
Результат:
Python
{1, 2, 4, 5, 6}
1 | {1,2,4,5,6} |
Теперь попробуем удалить элемент, которого нет во множестве. Сначала используем метод :
Python
num_set = {1, 2, 3, 4, 5, 6}
num_set.discard(7)
print(num_set)
1 2 3 |
num_set={1,2,3,4,5,6} num_set.discard(7) print(num_set) |
Результат:
Python
{1, 2, 3, 4, 5, 6}
1 | {1,2,3,4,5,6} |
Выдача выше показывает, что никакого воздействия на множество не было оказано. Теперь посмотрим, что выйдет из использования метода по аналогичному сценарию:
Python
num_set = {1, 2, 3, 4, 5, 6}
num_set.remove(7)
print(num_set)
1 2 3 |
num_set={1,2,3,4,5,6} num_set.remove(7) print(num_set) |
Результат:
Python
Traceback (most recent call last):
File «C:\Users\admin\sets.py», line 2, in <module>
num_set.remove(7)
KeyError: 7
1 2 3 4 |
Traceback(most recent call last) File»C:\Users\admin\sets.py»,line2,in<module> num_set.remove(7) KeyError7 |
Выдача показывает, что метод выдал ошибку KeyError, так как мы пытались удалить элемент, которого нет во множестве.
С методом , мы можем удалить и вернуть элемент. Так как элементы находятся в произвольном порядке, мы не можем утверждать или предсказать, какой элемент будет удален.
Например:
Python
num_set = {1, 2, 3, 4, 5, 6}
print(num_set.pop())
1 2 |
num_set={1,2,3,4,5,6} print(num_set.pop()) |
Результат:
Python
1
1 | 1 |
Вы можете использовать тот же метод при удалении элемента и возврате элементов, которые остаются во множестве. Например:
Python
num_set = {1, 2, 3, 4, 5, 6}
num_set.pop()
print(num_set)
1 2 3 |
num_set={1,2,3,4,5,6} num_set.pop() print(num_set) |
Результат:
Python
{2, 3, 4, 5, 6}
1 | {2,3,4,5,6} |
Эти элементы остаются во множестве.
Метод Python под названием поможет удалить все элементы во множестве. Например:
Python
num_set = {1, 2, 3, 4, 5, 6}
num_set.clear()
print(num_set)
1 2 3 |
num_set={1,2,3,4,5,6} num_set.clear() print(num_set) |
Результатом является пустой без каких-либо элементов внутри.
Отношения между множествами
Между множествами существуют несколько видов отношений, или другими словами взаимосвязей. Давайте рассмотрим возможные отношения между множествами в этом разделе.
Равные множества
Тут всё довольно просто – два множества называются равными, если они состоят из одних и тех же элементов. Как следует из определения множества, порядок этих элементов не важен.
Непересекающиеся множества
Если два множества не имеют общих элементов, то говорят, что эти множества не пересекаются. Или другими словами, пересечение этих множеств является пустым множеством.
Подмножество и надмножество
Подмножество множества S – это такое множество, каждый элемент которого является также и элементом множества S. Множество S в свою очередь является надмножеством исходного множества.
Пустое множество является подмножеством абсолютно любого множества.
Само множество является подмножеством самого себя.
Set Operations
As mentioned earlier, the set data type in Python implements as the set defined in mathematics.
Various set operations can be performed. Operators |, &, — and ^ perform union, intersection, difference, and symmetric difference operations, respectively. Each of these operators has a corresponding method associated with the built-in set class.
Operation | Example |
---|---|
Union: Returns a new set with elements from both the sets. Operator: | Method: set.union() | |
Intersection: Returns a new set containing elements common to both sets. Operator: & Method: set.intersection() | |
Difference: Returns a set containing elements only in the first set, but not in the second set.Operator: — Method: set.difference() |
|
Symmetric Difference: Returns a set consisting of elements in both sets, excluding the common elements.Operator: ^ Method: set.symmetric_difference() | |
3.2. Математические операции с множествами Python
Объединение двух множеств называется множество, состоящее из всех уникальный элементов обоих множеств. Для объединения множеств можно воспользоваться оператором | или методом union.
>>> {1, 2, 3, 4} | {3, 4, 5, 6, 7}{1, 2, 3, 4, 5, 6, 7}
>>> {1, 2, 3, 4}.union({3, 4, 5, 6, 7}){1, 2, 3, 4, 5, 6, 7}
Пересечение множеств
При пересечении двух множеств, получается множество, состоящее из всех уникальных элементов, входящих в оба множества. Пересечение можно вычислить оператором & или методом intersection.
>>> {1, 2, 3, 4} & {3, 4, 5, 6, 7}{3, 4}
>>> {1, 2, 3, 4}.intersection({3, 4, 5, 6, 7}){3, 4}
Разность множеств
Разность двух множеств является множество, состоящее из элементов левого операнда, не входящих в правый. Разность можно вычислить оператором — или методом difference.
>>> {1, 2, 3, 4} — {3, 4, 5, 6, 7}{1, 2}
>>> {1, 2, 3, 4}.difference({3, 4, 5, 6, 7}){1, 2}
Симметрическая разность множеств
Симметрической разностью двух множеств является множество, состоящее из элементов каждого множества, не входящих в другое множество. Симметрическую разность можно вычислить оператором ^ или методом symmetric_difference.
>>> {1, 2, 3, 4} ^ {3, 4, 5, 6, 7}{1, 2, 5, 6, 7}
>>> {1, 2, 3, 4}.symmetric_difference({3, 4, 5, 6, 7}){1, 2, 5, 6, 7}
Непересекающиеся множества
Непересекающимися множествами называются множества, если они оба не содержат общих элементов. Проверка выполняется методом isdisjoint.
>>> {1, 2, 3, 4}.isdisjoint({3, 4, 5, 6, 7})
False
>>> {1, 2, 3, 4}.isdisjoint({5, 6, 7})
True
3.3. Математические операции с изменяемыми множествами
В предыдущем разделе мы, выполняя математические операции, создавали новое множество, но также вы можете изменить существующее множество.
Расширенное присваивание с объединением |= выполняет операцию объединения множеств, как и оператор |, но |= изменяет свой левый операнд. Также вы можете воспользоваться методом update.
>>> numbers = {1, 4, 6}
>>> numbers |= {2, 3, 4, 5}
>>> numbers{1, 2, 3, 4, 5, 6}
>>> numbers = {1, 4, 6}
>>> numbers.update({7,8,9,10})
>>> numbers{1, 4, 6, 7, 8, 9, 10}
- Расширенное присваивание с пересечением &= или intersection_update
- Расширенное присваивание с разностью -= или difference_update
- Расширенное присваивание с симметрической разностью ^= или symmetric_difference_update
Remove Set items
There are several different functions to delete or remove an item from a Set:
Python Set remove method
If we know the set item or the value inside the given set, use the remove method.
- mySet.remove(4) removed 4 from mySet. After removing, the remaining set items adjusted themselves.
- FruitSet.remove(‘orange’) removed orange from fruits set.
Remove Python set item using del statement
The del statement completely removes the given set. If you select the set after executing this del method, it throws an error. It is because this set del function altogether removes the set.
Remove set items using clear method
The set clear method helps to clear all the items in a given set. After executing this method, it returns an empty set = set().
set clear method output
Remove Set item using discard method
The set discard method removes the set item. If we know the item or value that you want to delete then, use discard to remove the given set item.
In python, discard and remove functions are the same. However, if you try to remove a non-existing item, then set remove function with raise an error, and the set discard function won’t raise any error.
The output of the above set discard example is
set discard Analysis
- mySet.discard(7) removing 7 from mySet.
- mySet.discard(4) removing 4 from mySet.
- Next, we declared a fruit set contains 6 fruit names.
- FruitSet.discard(‘Mango’) removing Mango from fruit set.
Remove set items using pop method
The set pop method removes the last item from a given set. As we all know, sets are not in any particular order. So, you never know which item removed from the set. Although it is not worth it, I am giving one set example. So, you get the idea.
set pop function output
Example Code
# Python program to demonstrate working# of # Set in Python # creating two sets My_Set1 = set() My_Set2 = set() # Adding elements to My_Set1 for i in range(1, 6): My_Set1.add(i) # Adding elements to My_Set2 for i in range(3, 8): My_Set2.add(i) print("My_Set1 = ", My_Set1) print("My_Set2 = ", My_Set2) print("\n") # Union of My_Set1 and My_Set2 My_Set3 = My_Set1 | My_Set2# My_Set1.union(My_Set2) print("Union of My_Set1&My_Set2: My_Set3 = ", My_Set3) # Intersection of My_Set1 and My_Set2 My_Set4 = My_Set1&My_Set2# My_Set1.intersection(My_Set2) print("Intersection of My_Set1&My_Set2: My_Set4 = ", My_Set4) print("\n") # Checking relation between My_Set3 and My_Set4 if My_Set3>My_Set4: # My_Set3.issuperset(My_Set4) print("My_Set3 is superset of My_Set4") elif My_Set3<My_Set4: # My_Set3.issubset(My_Set4) print("My_Set3 is subset of My_Set4") else : # My_Set3 == My_Set4 print("My_Set3 is same as My_Set4") # displaying relation between My_Set4 and My_Set3 if My_Set4<My_Set3: # My_Set4.issubset(My_Set3) print("My_Set4 is subset of My_Set3") print("\n") # difference between My_Set3 and My_Set4 My_Set5 = My_Set3 - My_Set4 print("Elements in My_Set3 and not in My_Set4: My_Set5 = ", My_Set5) print("\n") # check if My_Set4 and My_Set5 are disjoint sets if My_Set4.isdisjoint(My_Set5): print("My_Set4 and My_Set5 have nothing in common\n") # Removing all the values of My_Set5 My_Set5.clear() print("After applying clear on sets My_Set5: ") print("My_Set5 = ", My_Set5)
Python Set
Python Set is a collection of elements.
Elements of a Python Set are unordered. There is no indexing mechanism in which you can access the elements of a Set.
Python Set elements are unique. You cannot have two elements with same reference or value in some cases.
Python Set is mutable. You can change/modify the elements in a Set.
Initialize Python Set
You can initialize a Python Set using flower braces . Elements you would like initialize in the set go inside these braces. If there are multiple elements, they should be separated from each other using comma.
Following is a simple example, demonstrating the initialization of an empty set, set with single element, and set with multiple elements.
Python Program
Run
Output
Python Set can have only Unique Values
We already mentioned that elements of Python Set should be unique.
In this example, let us try to initialize a Python Set with some duplicate elements and observe what happens.
Python Program
Run
Output
Only unique elements are initialized to the set and the duplicates are discarded.
Python Set Operations
You can perform many operations on a Python Set. Following are the tutorials to these Python Set Operations.
- add() – Adds an element (passed as argument) to the set. If element is already present, set remains unchanged.
- clear() – Removes all the elements from the set. And the set becomes empty.
- copy() – Returns a copy of the set. Helpful when you would like to keep an original copy of the Set.
- difference() – Returns a set containing the difference between two or more sets.
- difference_update() – Removes the items in this set that are also included in another, specified set.
- discard() – Remove the specified item.
- intersection() – Returns a set, that is the intersection of two other sets.
- intersection_update() – Removes the items in this set that are not present in other, specified set(s).
- isdisjoint() – Returns whether two sets have a intersection or not.
- issubset() – Returns whether another set contains this set or not.
- issuperset() – Returns whether this set contains another set or not.
- pop() – Removes an element from the set. Which element it pops is uncertain.
- remove() – Removes the specified element(passed as argument) .
- symmetric_difference() – Returns a set with the symmetric differences of two sets
- symmetric_difference_update() – inserts the symmetric differences from this set and another
- union() – Return a set containing the union of sets. Only the unique elements of the sets provided.
- update() – Update the set with the union of this set and others. This original set is modified.
Summary
In this tutorial of Python Examples, we learned what a Python Set is, how to initialize it, and different methods available to apply on a Python Set.
Добавление и удаление элементов
Метод add множества добавляет свой аргумент, если он еще не входит в множество, в противном случае множество остается без изменения.
>>> numbers = {1, 4, 6}
>>> numbers.add(5)
>>> numbers{1, 4, 5, 6}
>>> numbers.add(4)
>>> numbers{1, 4, 5, 6}
метод remove()
Метод remove() множества удаляет свой аргумент из множества. Если значение отсутствует, то происходит ошибка KeyError:
>>> numbers = {1, 4, 6}
>>> numbers.remove(4)
>>> numbers{1, 6}
метод discard()
Метод discard множества также удаляет аргумент, но в случае его отсутствия ошибка не происходит
>>> numbers = {1, 4, 6}
>>> numbers.discard(2)
>>> numbers{1, 4, 6}
метод pop()
Метод pop() множества удаляет элемент и возвращает его:
>>> numbers = {1, 4, 6, 7, 10, 45, 11}
>>> numbers.pop()1
метод clear()
Метод clear() очищает множество:
>>> numbers = {1, 4, 6}
>>> numbers.clear()
>>> numbersset()
Список
Список (list) представляет тип данных, который хранит набор или последовательность элементов. Для создания списка в квадратных скобках через запятую перечисляются все его элементы.
Создание пустого списка
numbers = []
Создание списка чисел:
numbers = # имя списка numbers, он содержит 5 элементов
Создание списка слов:
words = # имя списка words, он содержит 4 элемента
Создание списка из элементов разного типа
listNum = # имя списка listNum, список содержит целые числа и строки
Для управления элементами списки имеют целый ряд методов. Некоторые из них:
append(item): добавляет элемент item в конец списка
insert(index, item): добавляет элемент item в список по индексу index
remove(item): удаляет элемент item. Удаляется только первое вхождение элемента. Если элемент не найден, генерирует исключение ValueError
clear(): удаление всех элементов из списка
index(item): возвращает индекс элемента item. Если элемент не найден, генерирует исключение ValueError
pop(): удаляет и возвращает элемент по индексу index. Если индекс не передан, то просто удаляет последний элемент.
count(item): возвращает количество вхождений элемента item в список
sort(): сортирует элементы. По умолчанию сортирует по возрастанию. Но с помощью параметра key мы можем передать функцию сортировки.
reverse(): расставляет все элементы в списке в обратном порядке
Кроме того, Python предоставляет ряд встроенных функций для работы со списками:
len(list): возвращает длину списка
sorted(list, ): возвращает отсортированный список
min(list): возвращает наименьший элемент списка
Subsets and supersets
If all elements of set A are contained withing set B, A is called a subset of
B and B a superset of A.
python_subset_superset.py
#!/usr/bin/python3 set1 = { 'a', 'b', 'c', 'd', 'e' } set2 = { 'a', 'b', 'c' } set3 = {'x', 'y', 'z' } if (set2.issubset(set1)): print("set2 is a subset of set1") if (set1.issuperset(set2)): print("set1 is a superset of set2") if (set2.isdisjoint(set3)): print("set2 and set3 have no common elements")
In the example, we use , ,
and methods.
if (set2.issubset(set1)): print("set1 is a subset of set2")
With the method we check if is a subset of .
if (set1.issuperset(set2)): print("set1 is a superset of set2")
With the method we check if is a superset of .
if (set2.isdisjoint(set3)): print("set2 and set3 have no common elements")
With the method we check if and have no
common elements.
$ ./python_subset_superset.py set1 is a subset of set2 set1 is a superset of set2 set2 and set3 have no common elements
This is the output.
Python set built-in functions
There are several built-in Python functions, such as , or ,
that can be used on Python sets.
python_set_builtins.py
#!/usr/bin/python3 nums = { 21, 11, 42, 29, 22, 71, 18 } print(nums) print("Number of elements: {0}".format(len(nums))) print("Minimum: {0}".format(min(nums))) print("Maximum: {0}".format(max(nums))) print("Sum: {0}".format(sum(nums))) print("Sorted elements:") print(sorted(nums))
In the example we apply five built-in functions on a set of
integer values.
print("Number of elements: {0}".format(len(nums)))
The method returns the number of elements in the set.
print("Minimum: {0}".format(min(nums)))
The method returns the minimum value in the set.
print("Maximum: {0}".format(max(nums)))
The method returns the maximum value in the set.
print("Sum: {0}".format(sum(nums)))
The method returns the summation of values in the set.
print(sorted(nums))
Finally, with the method, we can create a sorted list
from the set, which is unordered.
$ ./python_set_builtins.py {71, 42, 11, 18, 21, 22, 29} Number of elements: 7 Minimum: 11 Maximum: 71 Sum: 214 Sorted elements:
This is the output.