Операции с множествами python: Операции над множествами. Программирование на Python

Операции с множествами Python — шпаргалка для начинающих

Множество — это неупорядоченный набор элементов. Каждый элемент уникален (не имеет дубликатов) и должен быть неизменным (его нельзя изменить). Но само множество можно изменять: добавлять или удалять элементы из него.

  • set python 3 или как создать множество?
  • Как изменять множества в Python
  • Как удалить элементы из множества?
  • Операции с множествами Python
    • Объединение множеств
    • Пересечение множеств питон (python)
    • Определение разницы множеств
    • Симметричная разница множеств
  • Методы для работы с множествами в Python
  • Другие операции над множествами
    • Проверка принадлежности к множеству
    • Итерация множества
    • Встроенные функции с множествами
    • Python Frozenset

Множество создается размещением с помощью функции set(). При этом элементы экранируются фигурными скобками и разделяются запятыми.

Множество может содержать любое количество элементов. Они могут быть различных типов. Но множество не может содержать изменяемый элемент, такой как список или словарь.

# множество целых чисел
my_set = {1, 2, 3}
print(my_set)
# множество значений разных типов
my_set = {1.0, "Hello", (1, 2, 3)}
print(my_set)

Другие примеры:

# множество не содержит дубликатов
# Вывод: {1, 2, 3, 4}
my_set = {1,2,3,4,3,2}
print(my_set)
# множество не может содержать изменяемых значений
# здесь [3, 4] - это изменяемый список
# Если вы раскомментируете строку #12,
# это приведет к ошибке.
# TypeError: unhashable type: 'list'
#my_set = {1, 2, [3, 4]}
# мы можем создать множество из этого списка
# Вывод: {1, 2, 3}
my_set = set([1,2,3,2])
print(my_set)

Создать пустое множество сложнее. Пустые фигурные скобки {} создадут пустой словарь Python. Чтобы создать множество без элементов, нужно вызвать функцию set() без аргументов.

# инициализируем a с помощью {}
a = {}
# проверяем тип данных a
# Вывод: <class 'dict'>
print(type(a))
# инициализируем a с помощью set()
a = set()
# проверяем тип данных a
# Вывод: <class 'set'>
print(type(a))

Множества могут быть изменены. Но элементы в них неупорядоченные, поэтому индексирование не имеет смысла.

Нельзя получить доступ или изменить элемент множества, используя для этого индексацию или срез. Множество их не поддерживает.

Можно добавить один элемент, используя метод add(), несколько — используя метод update(). Он может принимать в качестве аргумента кортежи, списки, строки или другие множества. Во всех случаях дубликаты невозможны.

# инициализируем my_set
my_set = {1,3}
print(my_set)
# если вы раскомментируете строку 9,
# то получите ошибку
# TypeError: 'set' object does not support indexing
#my_set[0]
# добавление элемента
# Вывод: {1, 2, 3}
my_set.add(2)
print(my_set)
# добавление нескольких элементов
# Вывод: {1, 2, 3, 4}
my_set.
update([2,3,4]) print(my_set) # добавление списка и множества # Вывод: {1, 2, 3, 4, 5, 6, 8} my_set.update([4,5], {1,6,8}) print(my_set)

Результат работы программы:

{1, 3}
{1, 2, 3}
{1, 2, 3, 4}
{1, 2, 3, 4, 5, 6, 8}

Это можно сделать с помощью методов discard() и remove(). Различие между ними состоит в том, что при использовании discard(), если элемент не существует во множестве, оно остается неизменным. А метод remove() выдаст ошибку.

Следующий пример иллюстрирует это.

# инициализируем my_set
my_set = {1, 3, 4, 5, 6}
print(my_set)
# удаляем элемент
# Вывод: {1, 3, 5, 6}
my_set.discard(4)
print(my_set)
# удаляем элемент
# Вывод: {1, 3, 5}
my_set.remove(6)
print(my_set)
# удаляем элемент,
# который отсутствует в my_set
# Вывод: {1, 3, 5}
my_set.discard(2)
print(my_set)
# удаляем элемент,
# который отсутствует в my_set
# Если вы раскомментируете строку 27,
# то получите ошибку.
# Вывод: KeyError: 2
#my_set.remove(2) 

Точно так же можно удалить и вернуть элемент, используя метод pop(). Но нет способа определить, какой элемент будет извлечен.

Мы также можем удалить все элементы из множества, используя метод clear().

# инициализируем my_set
# Вывод: множество уникальных элементов
my_set = set("HelloWorld")
print(my_set)
# извлекаем элемент
# Вывод: случайный элемент
print(my_set.pop())
# извлекаем еще один элемент
# Вывод: случайный элемент
my_set.pop()
print(my_set)
# очищаем my_set
#Вывод: set()
my_set.clear()
print(my_set)

Множества могут использоваться для выполнения математических операций: объединение, пересечение и симметричная разница.

Рассмотрим следующие два множества:

>>> A = {1, 2, 3, 4, 5}
>>> B = {4, 5, 6, 7, 8}

Объединение A и B — это множество всех элементов из обоих множеств.

Объединение  осуществляется с помощью оператора |. Эту же операцию можно осуществить с помощью метода union().

# инициализируем A и B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# используем оператор |
# Вывод: {1, 2, 3, 4, 5, 6, 7, 8}
print(A | B)

Протестируйте следующие примеры:

# используем функцию union
>>> A. union(B)
{1, 2, 3, 4, 5, 6, 7, 8}
# используем функцию union для B
>>> B.union(A)
{1, 2, 3, 4, 5, 6, 7, 8}

Пересечение A и B – операция получения набора элементов, которые являются общими для обоих множеств.

Пересечение осуществляется с помощью оператора &. Эту же операцию можно произвести с помощью метода intersection().

# инициализируем A и B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# используем оператор &
# Вывод: {4, 5}
print(A & B) 

Протестируйте следующие примеры:

# используем функцию intersection для A
>>> A.intersection(B)
{4, 5}
# используем функцию intersection для B
>>> B.intersection(A)
{4, 5}

Разница A и B (A — B) – операция получения множества элементов, которые принадлежат только  A, но не принадлежат B. Точно так же,  B — A представляет собой множество элементов принадлежащих B , но не принадлежащих А.

Разница определяется с помощью оператора -. или метода difference().

# инициализируем A и B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# используем оператор - для A
# Вывод: {1, 2, 3}
print(A - B)

Протестируйте следующие примеры:

# используем функцию difference для A
>>> A.
B)

Протестируйте следующие примеры:

# используем функцию symmetric_difference для A
>>> A.symmetric_difference(B)
{1, 2, 3, 6, 7, 8}
# используем функцию symmetric_difference для B
>>> B.symmetric_difference(A)
{1, 2, 3, 6, 7, 8}

Список всех методов, которые доступны для работы с объектами множеств.

Методы множеств Python
МетодОписание
add()Добавляет элемент во множество.
clear()Удаляет все элементы из множества.
copy()Возвращает копию множества.
difference()Возвращает разницу двух или более множеств в качестве нового множества.
difference_update()Удаляет все элементы другого множества из заданного множества.
discard()Удаляет элемент из множества, если он содержится в нем.
intersection()Возвращает пересечение двух множеств в качестве нового множества.
intersection_update()Обновляет множество пересечением с другим множеством.
isdisjoint()Возвращает значение True,   если два множества имеют нулевое пересечение.
issubset()Возвращает значение  True,  если другое множество содержит это множество.
issuperset()Возвращает значение True,  если это множество содержит другое множество.
pop()Удаляет и возвращает произвольный элемент множество. Выдает KeyError,  если множество пусто.
remove()Удаляет элемент из набора. Если элемент не является членом множества, выдает KeyError.
symmetric_difference()Возвращает симметричную разницу двух множеств как новое множество.
symmetric_difference_update()Обновляет множество симметричной разницей между собой и другим множеством.
union()Возвращает объединение множеств в новом наборе.
update()Обновляет множество объединением с другим множеством.

Мы можем проверить, существует ли элемент во множестве, используя ключевое слово in.

# инициализируем my_set
my_set = set("apple")
# проверяем, присутствует ли 'a'
# Вывод: True
print('a' in my_set)
# проверяем, присутствует ли 'p' 
# Вывод: False
print('p' not in my_set)

Используя цикл for, можно выполнить переборку каждого элемента во множестве.

>>> for letter in set("apple"):
...     print(letter)
...    
a
p
e
l

Встроенные функции, такие как all(), any(), enumerate(), len(), max(), min(), sorted(), sum() , используются с множеством для выполнения различных задач.

Встроенные функции для работы с множествами
ФункцияОписание
all()Возвращает значение True, если все элементы множества являются true (или если множество пусто).
any()Возвращает значение True, если какой-либо элемент множества является true. Если множество пусто, возвращает значение False.
enumerate()Возвращает пронумерованный объект. Содержит индекс и значение всех элементов множества в виде пары.
len()Возвращает длину (количество элементов) множества.
max()Возвращает наибольший элемент во множестве.
min()Возвращает наименьший элемент во множестве.
sorted()Возвращает новый отсортированный список, состоящий из элементов множества (не сортирует само множество).
sum()Возвращает сумму всех элементов множества.

Frozenset — это новый класс, который имеет характеристики множества. Но его элементы не могут быть изменены после назначения. В то время как кортежи представляют собой неизменяемые списки, Frozensets являются неизменяемыми множествами.

Frozenset может быть создан с помощью функции frozenset(). Этот тип данных поддерживает такие методы, как copy(), difference(), intersection(), isdisjoint(), issubset(), issuperset(), symmetric_difference() и union().  Но он не поддерживает методы добавления или удаления элементов.

# инициализируем A и B
A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6]) 

Протестируйте эти примеры.

>>> A.isdisjoint(B)
False
>>> A.difference(B)
frozenset({1, 2})
>>> A | B
frozenset({1, 2, 3, 4, 5, 6})
>>> A.add(3)
...
AttributeError: 'frozenset' object has no attribute 'add'

Вадим Дворниковавтор-переводчик статьи «Python Sets»

Операции с множествами Python — шпаргалка для начинающих

Множество — это неупорядоченный набор элементов. Каждый элемент уникален (не имеет дубликатов) и должен быть неизменным (его нельзя изменить). Но само множество можно изменять: добавлять или удалять элементы из него.

  • set python 3 или как создать множество?
  • Как изменять множества в Python
  • Как удалить элементы из множества?
  • Операции с множествами Python
    • Объединение множеств
    • Пересечение множеств питон (python)
    • Определение разницы множеств
    • Симметричная разница множеств
  • Методы для работы с множествами в Python
  • Другие операции над множествами
    • Проверка принадлежности к множеству
    • Итерация множества
    • Встроенные функции с множествами
    • Python Frozenset

Множество создается размещением с помощью функции set(). При этом элементы экранируются фигурными скобками и разделяются запятыми.

Множество может содержать любое количество элементов. Они могут быть различных типов. Но множество не может содержать изменяемый элемент, такой как список или словарь.

# множество целых чисел
my_set = {1, 2, 3}
print(my_set)
# множество значений разных типов
my_set = {1.0, "Hello", (1, 2, 3)}
print(my_set)

Другие примеры:

# множество не содержит дубликатов
# Вывод: {1, 2, 3, 4}
my_set = {1,2,3,4,3,2}
print(my_set)
# множество не может содержать изменяемых значений
# здесь [3, 4] - это изменяемый список
# Если вы раскомментируете строку #12,
# это приведет к ошибке.
# TypeError: unhashable type: 'list'
#my_set = {1, 2, [3, 4]}
# мы можем создать множество из этого списка
# Вывод: {1, 2, 3}
my_set = set([1,2,3,2])
print(my_set)

Создать пустое множество сложнее. Пустые фигурные скобки {} создадут пустой словарь Python. Чтобы создать множество без элементов, нужно вызвать функцию set() без аргументов.

# инициализируем a с помощью {}
a = {}
# проверяем тип данных a
# Вывод: <class 'dict'>
print(type(a))
# инициализируем a с помощью set()
a = set()
# проверяем тип данных a
# Вывод: <class 'set'>
print(type(a))

Множества могут быть изменены. Но элементы в них неупорядоченные, поэтому индексирование не имеет смысла.

Нельзя получить доступ или изменить элемент множества, используя для этого индексацию или срез. Множество их не поддерживает.

Можно добавить один элемент, используя метод add(), несколько — используя метод update(). Он может принимать в качестве аргумента кортежи, списки, строки или другие множества. Во всех случаях дубликаты невозможны.

# инициализируем my_set
my_set = {1,3}
print(my_set)
# если вы раскомментируете строку 9,
# то получите ошибку
# TypeError: 'set' object does not support indexing
#my_set[0]
# добавление элемента
# Вывод: {1, 2, 3}
my_set.add(2)
print(my_set)
# добавление нескольких элементов
# Вывод: {1, 2, 3, 4}
my_set. update([2,3,4])
print(my_set)
# добавление списка и множества
# Вывод: {1, 2, 3, 4, 5, 6, 8}
my_set.update([4,5], {1,6,8})
print(my_set)

Результат работы программы:

{1, 3}
{1, 2, 3}
{1, 2, 3, 4}
{1, 2, 3, 4, 5, 6, 8}

Это можно сделать с помощью методов discard() и remove(). Различие между ними состоит в том, что при использовании discard(), если элемент не существует во множестве, оно остается неизменным. А метод remove() выдаст ошибку.

Следующий пример иллюстрирует это.

# инициализируем my_set
my_set = {1, 3, 4, 5, 6}
print(my_set)
# удаляем элемент
# Вывод: {1, 3, 5, 6}
my_set.discard(4)
print(my_set)
# удаляем элемент
# Вывод: {1, 3, 5}
my_set.remove(6)
print(my_set)
# удаляем элемент,
# который отсутствует в my_set
# Вывод: {1, 3, 5}
my_set.discard(2)
print(my_set)
# удаляем элемент,
# который отсутствует в my_set
# Если вы раскомментируете строку 27,
# то получите ошибку.
# Вывод: KeyError: 2
#my_set.remove(2) 

Точно так же можно удалить и вернуть элемент, используя метод pop(). Но нет способа определить, какой элемент будет извлечен.

Мы также можем удалить все элементы из множества, используя метод clear().

# инициализируем my_set
# Вывод: множество уникальных элементов
my_set = set("HelloWorld")
print(my_set)
# извлекаем элемент
# Вывод: случайный элемент
print(my_set.pop())
# извлекаем еще один элемент
# Вывод: случайный элемент
my_set.pop()
print(my_set)
# очищаем my_set
#Вывод: set()
my_set.clear()
print(my_set)

Множества могут использоваться для выполнения математических операций: объединение, пересечение и симметричная разница.

Рассмотрим следующие два множества:

>>> A = {1, 2, 3, 4, 5}
>>> B = {4, 5, 6, 7, 8}

Объединение A и B — это множество всех элементов из обоих множеств.

Объединение  осуществляется с помощью оператора |. Эту же операцию можно осуществить с помощью метода union().

# инициализируем A и B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# используем оператор |
# Вывод: {1, 2, 3, 4, 5, 6, 7, 8}
print(A | B)

Протестируйте следующие примеры:

# используем функцию union
>>> A. union(B)
{1, 2, 3, 4, 5, 6, 7, 8}
# используем функцию union для B
>>> B.union(A)
{1, 2, 3, 4, 5, 6, 7, 8}

Пересечение A и B – операция получения набора элементов, которые являются общими для обоих множеств.

Пересечение осуществляется с помощью оператора &. Эту же операцию можно произвести с помощью метода intersection().

# инициализируем A и B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# используем оператор &
# Вывод: {4, 5}
print(A & B) 

Протестируйте следующие примеры:

# используем функцию intersection для A
>>> A.intersection(B)
{4, 5}
# используем функцию intersection для B
>>> B.intersection(A)
{4, 5}

Разница A и B (A — B) – операция получения множества элементов, которые принадлежат только  A, но не принадлежат B. Точно так же,  B — A представляет собой множество элементов принадлежащих B , но не принадлежащих А.

Разница определяется с помощью оператора -. или метода difference().

# инициализируем A и B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# используем оператор - для A
# Вывод: {1, 2, 3}
print(A - B)

Протестируйте следующие примеры:

# используем функцию difference для A
>>> A.  B)

Протестируйте следующие примеры:

# используем функцию symmetric_difference для A
>>> A.symmetric_difference(B)
{1, 2, 3, 6, 7, 8}
# используем функцию symmetric_difference для B
>>> B.symmetric_difference(A)
{1, 2, 3, 6, 7, 8}

Список всех методов, которые доступны для работы с объектами множеств.

Методы множеств Python
МетодОписание
add()Добавляет элемент во множество.
clear()Удаляет все элементы из множества.
copy()Возвращает копию множества.
difference()Возвращает разницу двух или более множеств в качестве нового множества.
difference_update()Удаляет все элементы другого множества из заданного множества.
discard()Удаляет элемент из множества, если он содержится в нем.
intersection()Возвращает пересечение двух множеств в качестве нового множества.
intersection_update()Обновляет множество пересечением с другим множеством.
isdisjoint()Возвращает значение True,   если два множества имеют нулевое пересечение.
issubset()Возвращает значение  True,  если другое множество содержит это множество.
issuperset()Возвращает значение True,  если это множество содержит другое множество.
pop()Удаляет и возвращает произвольный элемент множество. Выдает KeyError,  если множество пусто.
remove()Удаляет элемент из набора. Если элемент не является членом множества, выдает KeyError.
symmetric_difference()Возвращает симметричную разницу двух множеств как новое множество.
symmetric_difference_update()Обновляет множество симметричной разницей между собой и другим множеством.
union()Возвращает объединение множеств в новом наборе.
update()Обновляет множество объединением с другим множеством.

Мы можем проверить, существует ли элемент во множестве, используя ключевое слово in.

# инициализируем my_set
my_set = set("apple")
# проверяем, присутствует ли 'a'
# Вывод: True
print('a' in my_set)
# проверяем, присутствует ли 'p' 
# Вывод: False
print('p' not in my_set)

Используя цикл for, можно выполнить переборку каждого элемента во множестве.

>>> for letter in set("apple"):
...     print(letter)
...    
a
p
e
l

Встроенные функции, такие как all(), any(), enumerate(), len(), max(), min(), sorted(), sum() , используются с множеством для выполнения различных задач.

Встроенные функции для работы с множествами
ФункцияОписание
all()Возвращает значение True, если все элементы множества являются true (или если множество пусто).
any()Возвращает значение True, если какой-либо элемент множества является true. Если множество пусто, возвращает значение False.
enumerate()Возвращает пронумерованный объект. Содержит индекс и значение всех элементов множества в виде пары.
len()Возвращает длину (количество элементов) множества.
max()Возвращает наибольший элемент во множестве.
min()Возвращает наименьший элемент во множестве.
sorted()Возвращает новый отсортированный список, состоящий из элементов множества (не сортирует само множество).
sum()Возвращает сумму всех элементов множества.

Frozenset — это новый класс, который имеет характеристики множества. Но его элементы не могут быть изменены после назначения. В то время как кортежи представляют собой неизменяемые списки, Frozensets являются неизменяемыми множествами.

Frozenset может быть создан с помощью функции frozenset(). Этот тип данных поддерживает такие методы, как copy(), difference(), intersection(), isdisjoint(), issubset(), issuperset(), symmetric_difference() и union().  Но он не поддерживает методы добавления или удаления элементов.

# инициализируем A и B
A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6]) 

Протестируйте эти примеры.

>>> A.isdisjoint(B)
False
>>> A.difference(B)
frozenset({1, 2})
>>> A | B
frozenset({1, 2, 3, 4, 5, 6})
>>> A.add(3)
...
AttributeError: 'frozenset' object has no attribute 'add'

Вадим Дворниковавтор-переводчик статьи «Python Sets»

наборов в Python | Операции с множествами в Python

Знакомство с множествами в Python

В математике множество — это набор отдельных объектов, образующих группу. Объекты могут быть любого типа, такие как числа, названия фильмов, названия компаний и т. д. В наборе может быть любое количество объектов, и объекты могут иметь разные типы данных. Множество — это концепция теории множеств, которая является популярной и полезной темой математики. Есть несколько операций, которые можно выполнять над множеством, к этим операциям относятся объединение, пересечение, разность.

Наборы в python тоже похожи, но с некоторыми условиями.

  • Во-первых, набор не может содержать повторяющиеся элементы.
  • Во-вторых, элементы набора неизменяемы (однажды введенные не могут быть изменены), но набор в целом изменчив.

В Python такие операции, как объединение, пересечение, могут выполняться над множеством, но они также используются для других целей, которые мы обсудим в этой статье.

Формальное определение набора в Python будет таким: Set — это неупорядоченная коллекция элементов, где каждый элемент уникален и неизменен. Однако сам набор является изменчивым.

Создание наборов в Python

Как и большинство других вещей, создание набора в Python очень просто. Существует два способа создания набора

  1. Помещение всех элементов в фигурные скобки «{» и «}»
  2. Использование метода set().

Если фигурные скобки кажутся вам знакомыми, это потому, что они используются в словарях Python.

Использование фигурных скобок

Давайте рассмотрим пример.

 
 четное число = {2, 4, 6}
печать (четное число)
stringAndNum = {"один", 2, 3}
печать (строка и число)
 

Вывод:

 
 {2 , 4 , 6}
{2, 3, "один"}
 

Здесь вы можете видеть, что мы создали набор, который содержит только числа и другой который содержит числа и строки.

Кроме того, нажмите здесь, чтобы узнать больше о Numbers в Python.

Использование функции set()

Синтаксис: set([iterable])

Тип возвращаемого значения: Пусто, если аргумент не указан, в противном случае объект набора или замороженного набора

set() принимает итерируемый объект в качестве аргумента . В python строки, списки и словари являются итерируемыми, поэтому вы можете передавать их внутри set(). set() возвращает объект набора или замороженного набора (объясняется далее в статье). Если нет входных данных (т. е. нет итерации, переданной в качестве аргумента), то возвращается пустой набор.

Вот пример использования функции set()

 
 setWithMethod = набор ([1, 2, 'три'])
печать (установить с методом)
 

Вывод:

 
 {1, 2, 'три'}
 

Вот пример кода, показывающий, как можно создать набор из итерируемых объектов (списков, словарей, строк и т. д.)

 
 a = {"one": 1, "two": 2}
б = [100, 200, 300]
с = 'питон'
печать (набор (а), конец = '\n')
печать (набор (b), конец = '\n')
печать (набор (с))
 

Выход:

 
 {'один', 'два'}
{200, 100, 300}
{'ч', 'н', 'о', 'п', 'у', 'т'}
 

Одним из важных свойств set() является неизменяемость элементов. Таким образом, вы не можете ввести какой-либо изменяемый объект внутри набора (например, словарей, списков, набора).

 
 # Это не сработает
мойSetOne = {1, 2, [3, 4]}
печать (мойSetOne)
# Это будет работать
mySetTwo = {1, 2, (3, 4)}
печать (мойSetTwo)
 

Здесь, когда выполняется mySetOne, выдается TypeError: unhashable type: ‘list’

 
 mySetOne = {1, 2, [3,4]}
TypeError: unhashable type: 'list'
 

При выполнении mySetTwo мы получаем

 
 {1, 2, (3,4)}
 

Добавление элементов в набор Python

Добавление элементов в набор отличается от добавления элементов в списки. Установить не использовать индексацию. Существует два метода добавления элементов в набор

  1. add() позволяет добавить один элемент
  2. update() позволяет добавить несколько элементов

Давайте посмотрим на код —

 
 initialSet = {1, 2}
начальный набор.добавить(3)
печать (начальный набор)
Добавить = [4, 5]
initialSet.update(toAdd)
печать (начальный набор)
 

Вывод:

 
 {1, 2, 3}
{1, 2, 3, 4, 5}
 

update() принимает в качестве аргумента итерацию, такую ​​как строка, список, словарь.

Удаление элементов из набора в Python

Для удаления элементов у нас есть следующие методы:

  1. удалить(элемент) — Этот метод удаляет элемент из набора. Если элемент отсутствует, выдается ошибка.
  2. отбросить(элемент) — Этот метод удаляет элемент из набора. Если элемент отсутствует, набор останется неизменным.
  3. очистить() — Этот метод используется для удаления всех элементов набора.

Давайте посмотрим на код, чтобы лучше понять этот метод.

 
 мой набор = {1, 2, 3, 5}
print("До: ", mySet)
мой набор.удалить(3)
print("После: ", mySet)
mySet.discard(4)
print("Используя discard: ", mySet)
мойSet.очистить()
печать (мой набор)
 

Вывод:

 
 До: {1, 2, 3, 5}
После: {1, 2, 5}
Использование: {1, 2, 5}
установлен()
 

Здесь вы можете видеть, что элемент, переданный в discard(), не существует в наборе, а discard() не выдала никакой ошибки. Кроме того, этот код показывает использование clear().

Операции над множествами в Python

Большинство операций над множествами можно выполнять двумя способами.

  1. Использование оператора
  2. Использование методов

Мы рассмотрим оба способа выполнения задачи.

Union

Union Операция объединяет все элементы из обоих наборов. «|» (трубка) используется для выполнения этой операции. Мы также можем использовать метод union().

Давайте посмотрим на пример кода:

 
 BudgetCars = {'Maruti', 'Hyundai', 'Ford'}
highEndCard = {'Ауди', 'БМВ', 'Форд'}
print(budgetCars | highEndCard)
печать (budgetCars.union (highEndCard))
 

Выход:

 
 {'Hyundai', 'Ford', 'Audi', 'Maruti', 'BMW'}
{'Хендай', 'Форд', 'Ауди', 'Марути', 'БМВ'}
 

В этом примере вы можете видеть, что объединение объединяет все элементы из обоих наборов и не содержит повторяющихся элементов.

Пересечение

Операция пересечения выбирает элементы, общие для обоих наборов. Оператор «&» или метод пересечения() используется для выполнения этой операции.

Здесь, в примере, вы можете видеть, что результат пересечения выбирает два элемента, которые являются общими для обоих химических веществ.

 
 ChemicalOne = {'Na', 'K', 'Cl'}
ChemicalTwo = {'HCL', 'Cl', 'Ba'}
print(chemicalOne и ChemicalTwo)
print(chemicalOne.intersection(chemicalTwo))
 

Вывод:

 
 {'Cl'}
{'Cl'}
 

Разность

Разность наборов аналогична вычитанию. Когда множество B вычитается из множества A, то есть множество A — множество B, мы говорим, что в результирующем множестве все элементы множества B будут удалены из множества A. Для выполнения этой операции используется метод «-» (знак вычитания) или метод разность().

 
 easyToLearn = {'Python', 'JavaScript', 'C++'}
hardToLearn = {'Сборка', 'С++'}
печать (легко учиться - трудно учиться)
печать (easyToLearn.difference (hardToLearn))
print('Изменив порядок получаем: ')
печать (трудно учиться - легко учиться)
печать (трудно учиться. разница (легко учиться))
 

Вывод:

 
 {'JavaScript', 'Python'}
{'JavaScript', 'Питон'}
Меняя порядок получаем:
{'Сборка'}
{'Сборка'}
 

Предположим, что вы прошли три набора A, B и C, чтобы найти разницу. В этом случае сначала будет вычислена разность А и В, затем ее результат (допустим R) будет использован для вычисления разности с С. 9б) печать (а. симметричная_разница (б))

Вывод:

 
 {1, 2, 4, 5}
{1, 2, 4, 5}
 

Frozen Set

Frozen set — это встроенный тип данных в Python. Это набор , который является неизменным (однажды определенный, его нельзя изменить). Он поддерживает все немодифицирующие операции набора. Такие операции, как add(), не будут работать в случае замороженного множества.

Вот простой пример:

 
 a = замороженный набор(['один', 'два', 'три'])
печать (а)
 

Вывод:

 
 замороженный набор({'один','два','три'})
 

Типичным вариантом использования Frozenset может быть хранение ключей словаря. Вот пример, показывающий, что

 
 myDict = {'name': "Python", 'type': 'interpreted'}
setOfDict = замороженный набор (myDict)
печать (setOfDict)
 

Вывод:

 
 замороженный набор ({'имя', 'тип'})
 

Предположим, что мы хотим отобразить эти данные какому-то пользователю, а затем с помощью FrozenSet имеет смысл, так как никто не сможет их изменить.

Заключение

В этой статье вы узнали, как создавать наборы в Python и выполнять над ними различные операции.

Как и списки, словари — это тип данных, предоставленный Python, который имеет собственный вариант использования. Где-то это может быть полезно, а где-то не очень. Знание того, что вы можете сделать с набором, поможет решить, соответствует ли он вашим требованиям.

Наборы Python

❮ Предыдущий Далее ❯


myset = {«яблоко», «банан», «вишня»}


Набор

Наборы используются для хранения нескольких элементов в одной переменной.

Set — один из 4 встроенных типов данных в Python, используемых для хранения коллекций данные, остальные 3 — список, Tuple и Dictionary, все с разными качествами и использованием.

Набор — это набор, состоящий из неупорядоченных , неизменяемых* и неиндексированных .

* Примечание: Set Элементы неизменны, но их можно удалить элементы и добавлять новые элементы.

Наборы пишутся с фигурными скобками.

Пример

Создать набор:

thisset = {«яблоко», «банан», «вишня»}
print(thisset)

Попробуйте сами »

Примечание: Наборы неупорядочены, поэтому вы не можете быть уверенным в том, в каком заказ элементы появятся.


Элементы набора

Элементы набора неупорядочены, неизменяемы и не допускают дублирования значений.


Неупорядоченный

Неупорядоченный означает, что элементы в наборе не имеют определенного порядка.

Предметы набора могут появляться в другом порядке каждый раз, когда вы их используете, и на него нельзя ссылаться по индексу или ключу.


Неизменяемый

Элементы набора неизменяемы, это означает, что мы не можем изменить элементы после создания набора.

После создания набора вы не можете изменять его элементы, но можете удалять элементы и добавить новые элементы.


Дубликаты не допускаются

Наборы не могут содержать два предмета с одинаковым значением.

Пример

Повторяющиеся значения будут игнорироваться:

thisset = {«яблоко», «банан», «вишня», «яблоко»}

print(thisset)

Попробуйте сами »



Получение длины набора

Чтобы определить количество предметов в наборе, используйте len() функция.

Пример

Получить количество предметов в наборе:

thisset = {«яблоко», «банан», «вишня»}

print(len(thisset))

Попробуйте сами »


Элементы набора — типы данных

Элементы набора могут иметь любой тип данных:

Пример

Типы данных String, int и boolean:

5 set 9 = {«яблоко», «банан», «вишня»}


set2 = {1, 5, 7, 9, 3}
set3 = {True, False, False}

Попробуйте сами »

Набор может содержать различные типы данных:

Пример

Набор строк, целых чисел и логических значений:

set1 = {«abc», 34, True, 40, «male»}

Попробуйте сами »


type()

С точки зрения Python множества определяются как объекты с типом данных ‘set’:

<класс 'набор'>

Пример

Каков тип данных множества?

myset = {«яблоко», «банан», «вишня»}
print(type(myset))

Попробуйте сами »


Конструктор set()

Также можно использовать set( ) конструктор, чтобы сделать набор.

Пример

Использование конструктора set() для создания набора:

thisset = set((«apple», «banana», «cherry»)) # обратите внимание на двойные круглые скобки
print(thisset)

Попробуйте сами »


Коллекции Python (массивы)

В языке программирования Python существует четыре типа данных коллекций:

  • Список представляет собой упорядоченную и изменяемую коллекцию. Позволяет дублировать участников.
  • Кортеж представляет собой упорядоченную и неизменяемую коллекцию. Позволяет дублировать участников.
  • Набор представляет собой неупорядоченную, неизменяемую* и неиндексированную коллекцию. Нет повторяющихся членов.
  • Словарь это сборник, который заказывается** и изменчивый. Нет повторяющихся членов.

*Set элементы неизменяемы, но можно удалять элементы и добавлять новые Предметы.

Оставить комментарий

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

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