Множество (set) в Python — это набор уникальных данных. Элементы множества не могут дублироваться. Множество может содержать любое количество элементов, и они могут быть разных типов (int, float, кортеж, строки и т.д.). Но множество не может иметь изменяемые элементы, такие как списки, словари или другие множества. Для создания множества все элементы помещают внутри фигурных скобок {}
, разделенных запятыми.
Создание множества в Python
В Python для создания множества все элементы помещают внутри фигурных скобок {}
, разделенных запятыми.
Множество может содержать любое количество элементов, и они могут быть разных типов (int, float, кортеж, строки и т.д.). Но множество не может иметь изменяемые элементы, такие как списки, словари или другие множества.
Рассмотрим пример:
1 2 3 4 5 6 7 8 9 10 11 |
# Множество целочисленного типа student_id = {112, 114, 116, 118, 115} print('Student ID:', student_id) # Множество строчного типа vowel_letters = {'a', 'e', 'i', 'o', 'u'} print('Vowel Letters:', vowel_letters) # Множество смешанного типа mixed_set = {'Hello', 101, -2, 'Bye'} print('Set of mixed data types:', mixed_set) |
Результат:
Student ID: {112, 114, 115, 116, 118}
Vowel Letters: {'u', 'a', 'e', 'i', 'o'}
Set of mixed data types: {'Hello', 'Bye', 101, -2}
Здесь мы создали различные типы множеств, поместив все элементы внутри фигурных скобок {}
.
Примечание: При выполнении этого кода вы можете получить результат с элементами в другом порядке. Это происходит потому, что множество не имеет определенного порядка.
Создание пустого множества — дело нехитрое. Пустые фигурные скобки {}
создадут пустой словарь в Python. А для создания пустого множества нужно использовать функцию set() без каких-либо аргументов. Например:
1 2 3 4 5 6 7 8 9 10 11 |
# Создание пустого множество empty_set = set() # Создание пустого словаря empty_dictionary = { } # Проверка типа данных empty_set print('Data type of empty_set:', type(empty_set)) # Проверка типа данных dictionary_set print('Data type of empty_dictionary', type(empty_dictionary)) |
Результат:
Data type of empty_set: <class 'set'>
Data type of empty_dictionary <class 'dict'>
Здесь:
empty_set
— пустое множество, созданное с помощью set();
empty_dictionary
— пустой словарь, созданный с помощью {}
.
Наконец, мы использовали функцию type() для определения типа данных empty_set
и empty_dictionary
.
Дублирование элементов в множестве
Давайте посмотрим, что произойдет, если мы попытаемся включить в набор дублирующиеся элементы.
1 2 |
numbers = {2, 4, 6, 6, 2, 8} print(numbers) |
Результат:
{8, 2, 4, 6}
Здесь мы видим, что в множестве нет одинаковых элементов, так как оно не может содержать дубли.
Добавление, обновление и удаление элементов множества в Python
Множества изменяемые. Однако, поскольку они неупорядочены, индексирование не имеет смысла. Мы не можем получить доступ или изменить элемент множества с помощью индексации или среза. Тип данных set не поддерживает этого.
Добавление элемента в множество
В Python метод add() используется для добавления элемента в множество. Например:
1 2 3 4 5 6 7 8 |
numbers = {21, 34, 54, 12} print('Initial Set:',numbers) # Использование метода add() numbers.add(32) print('Updated Set:', numbers) |
Результат:
Initial Set: {34, 12, 21, 54}
Updated Set: {32, 34, 12, 21, 54}
Здесь мы создали множество с именем numbers
. Обратите внимание на строку:
1 |
numbers.add(32) |
Здесь add() добавляет значение 32
к нашему множеству.
Обновление множества
В Python метод update() используется для обновления множества элементами других типов данных (списки, кортежи и т.д.). Например:
1 2 3 4 5 6 |
companies = {'Lacoste', 'Ralph Lauren'} tech_companies = ['apple', 'google', 'apple'] companies.update(tech_companies) print(companies) |
Результат:
{'Lacoste', 'Ralph Lauren', 'apple', 'google'}
Здесь все уникальные элементы tech_companies
добавляются в множество companies
.
Удаление элемента из множества
В Python метод discard() используется для удаления указанного элемента из множества. Например:
1 2 3 4 5 6 7 8 |
languages = {'Swift', 'Java', 'Python'} print('Initial Set:',languages) # Удаление 'Java' из множества removedValue = languages.discard('Java') print('Set after remove():', languages) |
Результат:
Initial Set: {'Python', 'Swift', 'Java'}
Set after remove(): {'Python', 'Swift'}
Здесь мы использовали метод discard(), чтобы удалить 'Java'
из множества language
.
Итерация по множеству в Python
1 2 3 4 5 |
fruits = {"Apple", "Peach", "Mango"} # Используем цикл for для доступа к каждому элементу for fruit in fruits: print(fruit) |
Результат:
Определение количества элементов множества
В Python метод len() используется для определения количества элементов, присутствующих в множестве. Например:
1 2 3 4 |
even_numbers = {2,4,6,8} print('Set:',even_numbers) print('Total Elements:', len(even_numbers)) |
Результат:
Set: {8, 2, 4, 6}
Total Elements: 4
Операции с множествами в Python
Python предоставляет различные встроенные методы для выполнения математических операций с множествами, таких как объединение, пересечение, разность и симметрическая разность.
Объединение множеств
Объединение двух множеств A и B включает в себя все элементы множеств A и B.
Для выполнения операции объединения множеств используется оператор |
или метод union()
. Например:
1 2 3 4 5 6 7 8 9 10 11 |
# Первое множество A = {1, 3, 5} # Второе множество B = {0, 2, 4} # Выполнение операции объединения с помощью | print('Union using |:', A | B) # Выполнение операции объединения с помощью union() print('Union using union():', A.union(B)) |
Результат:
Union using |: {0, 1, 2, 3, 4, 5}
Union using union(): {0, 1, 2, 3, 4, 5}
Примечание: A | B
и union()
эквивалентны операции множества A ⋃ B
.
Пересечение множеств
Пересечение двух множеств A и B включает в себя общие элементы между множествами A и B.
В Python для выполнения операции пересечения множеств используется оператор &
или метод intersection()
. Например:
1 2 3 4 5 6 7 8 9 10 11 |
# Первое множество A = {1, 3, 5} # Второе множество B = {1, 2, 3} # Выполнение операции пересечения с помощью & print('Intersection using &:', A & B) # Выполнение операции пересечения с помощью intersection() print('Intersection using intersection():', A.intersection(B)) |
Результат:
Intersection using &: {1, 3}
Intersection using intersection(): {1, 3}
Примечание: A & B
и intersection()
эквивалентны операции множества A ⋂ B
.
Разность множеств
Разница между двумя множествами A и B включает в себя элементы множества A, которых нет в множестве B.
В Python для выполнения операции разности между двумя множествами используется оператор -
или метод difference()
. Например:
1 2 3 4 5 6 7 8 9 10 11 |
# Первое множество A = {2, 3, 5} # Второе множество B = {1, 2, 6} # Выполнение операции разности с помощью - print('Difference using -:', A - B) # Выполнение операции разности с помощью difference() print('Difference using difference():', A.difference(B)) |
Результат:
Difference using -: {3, 5}
Difference using difference(): {3, 5}
Примечание: A - B
и A.difference(B)
эквивалентны операции множества A - B
.
Симметрическая разность множеств
Симметрическая разность двух множеств A и B включает в себя все элементы A и B без общих элементов.
В Python для выполнения операции симметрической разности между двумя множествами используется оператор ^
или метод symmetric_difference()
. Например:
1 2 3 4 5 6 7 8 9 10 11 |
# Первое множество A = {2, 3, 5} # Второе множество B = {1, 2, 6} # Выполнение операции симметрической разности с помощью & print('using ^:', A ^ B) # Выполнение операции симметрической разности с помощью symmetric_difference() print('using symmetric_difference():', A.symmetric_difference(B)) |
Результат:
using ^: {1, 3, 5, 6}
using symmetric_difference(): {1, 3, 5, 6}
Проверка, являются ли два множества равными
В Python оператор ==
используется, чтобы проверить, равны ли два множества. Например:
1 2 3 4 5 6 7 8 9 10 11 |
# Первое множество A = {1, 3, 5} # Второе множество B = {3, 5, 1} # Проверяем, равны ли два множества if A == B: print('Set A and Set B are equal') else: print('Set A and Set B are not equal') |
Результат:
Set A and Set B are equal
Здесь A
и B
имеют одинаковые элементы, поэтому условие
1 |
if A == B |
вычисляется в True
. Следовательно, выполняется print('Set A and Set B are equal')
внутри if.
Методы для работы с множествами в Python
Функции | Описание |
add() | Добавляет элемент к множеству. |
all() | Возвращает True, если все элементы множества True (или если множество пустое). |
any() | Возвращает True, если хоть один из элементов множества True. Если множество пустое, возвращается False. |
clear() | Удаляет все элементы из множества. |
copy() | Возвращает копию множества. |
difference() | Возвращает разность двух или более множеств в виде нового множества. |
difference_update() | Удаляет все элементы другого множества из текущего множества. |
discard() | Удаляет элемент из множества, если он является его частью. (Ничего не делает, если элемент не находится в множестве) |
enumerate() | Возвращает объект перечисления, который содержит индекс и значение для всех элементов множества в виде пары. |
intersection() | Возвращает пересечение двух множеств в виде нового множества. |
intersection_update() | Обновляет множество пересечением себя и другого множества. |
isdisjoint() | Возвращает True, если два множества не имеют пересечение. |
issubset() | Возвращает True, если другое множество содержит текущее множество. |
issuperset() | Возвращает True, если текущее множество содержит другое множество. |
len() | Возвращает длину (количество элементов) в множестве. |
max() | Возвращает самый большой элемент в множестве. |
min() | Возвращает наименьший элемент в множестве. |
pop() | Удаляет и возвращает произвольный элемент множества. Вызывает ошибку KeyError, если множество пустое. |
remove() | Удаляет элемент из множества. Если элемент не является членом множества, возникает ошибка KeyError. |
sorted() | Возвращает новый отсортированный список из элементов множества (но не выполняет сортировку). |
sum() | Возвращает сумму всех элементов множества. |
symmetric_difference() | Возвращает симметрическую разность двух множеств в виде нового множества. |
symmetric_difference_update() | Обновляет множество с симметрической разностью себя и другого. |
union() | Возвращает объединение множеств в новом множестве. |
update() | Обновляет множество с объединением себя и других. |