Python — set methods

Содержание:

Операции

Как и обычные наборы, 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»} {«Солнце», «ср», «пн», «Чт», «Вт» , «Сет», «Фри»}

Рекомендуемые показания:

  1. Список в Python
  2. Массив в Python
  3. 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector