Занятие 9. Множества
поставить лайк
VIDEO
Множества в Python представляют собой неупорядоченные коллекции уникальных (то есть
неповторяющихся ) элементов. Они полезны для выполнения множества операций,
таких как объединение, пересечение, разность и симметричная разность. Рассмотрим подробно
создание, использование и различные операции с множествами.
Создание множеств
Пустое множество
Для создания пустого множества используйте функцию set()
, так как {}
создаст пустой словарь.
empty_set = set()
Множество с элементами
fruits = {"apple" , "banana" , "cherry" }
Преобразование списка в множество
numbers = [1 , 2 , 2 , 3 , 4 , 4 , 5 ]
unique_numbers = set(numbers)
print(unique_numbers)
Основные операции с множествами
Добавление элементов
Метод add()
Добавляет один элемент в множество.
fruits = {"apple" , "banana" }
fruits.add("cherry" )
print(fruits)
Метод update()
Добавляет несколько элементов в множество.
fruits = {"apple" , "banana" }
fruits.update(["cherry" , "date" ])
print(fruits)
Удаление элементов
Метод remove()
fruits = {"apple" , "banana" , "cherry" }
fruits.remove("banana" )
print(fruits)
Метод discard()
Удаляет элемент из множества, если он существует. Если элемент не найден, не вызывает ошибок.
fruits = {"apple" , "banana" , "cherry" }
fruits.discard("banana" )
print(fruits)
Метод pop()
Удаляет и возвращает случайный элемент из множества. Если множество пусто, вызывает
KeyError
.
fruits = {"apple" , "banana" , "cherry" }
removed_fruit = fruits.pop()
print(removed_fruit)
print(fruits)
Метод clear()
Удаляет все элементы из множества.
fruits = {"apple" , "banana" , "cherry" }
fruits.clear()
print(fruits)
Операции с множествами
Объединение множеств
Оператор |
и метод union()
a = {1 , 2 , 3 }
b = {3 , 4 , 5 }
union_set = a | b
print(union_set)
union_set = a.union(b)
print(union_set)
Пересечение множеств
Оператор &
и метод intersection()
a = {1 , 2 , 3 }
b = {3 , 4 , 5 }
intersection_set = a & b
print(intersection_set)
intersection_set = a.intersection(b)
print(intersection_set)
Разность множеств
Оператор -
и метод difference()
a = {1 , 2 , 3 }
b = {3 , 4 , 5 }
difference_set = a - b
print(difference_set)
difference_set = a.difference(b)
print(difference_set)
Симметричная разность множеств
Оператор ^
и метод symmetric_difference()
a = {1 , 2 , 3 }
b = {3 , 4 , 5 }
symmetric_difference_set = a ^ b
print(symmetric_difference_set)
symmetric_difference_set = a.symmetric_difference(b)
print(symmetric_difference_set)
Проверка подмножеств и надмножеств
Метод issubset()
Проверяет, является ли одно множество подмножеством другого.
a = {1 , 2 , 3 }
b = {1 , 2 , 3 , 4 , 5 }
is_subset = a.issubset(b)
print(is_subset)
Метод issuperset()
Проверяет, является ли одно множество надмножеством другого.
a = {1 , 2 , 3 , 4 , 5 }
b = {1 , 2 , 3 }
is_superset = a.issuperset(b)
print(is_superset)
Метод isdisjoint()
Проверяет, не имеют ли множества общих элементов.
a = {1 , 2 , 3 }
b = {4 , 5 , 6 }
is_disjoint = a.isdisjoint(b)
print(is_disjoint)
Перебор элементов множества
fruits = {"apple" , "banana" , "cherry" }
for fruit in fruits:
print(fruit)
Генераторы множеств
Генераторы множеств позволяют создавать множества с помощью краткой записи.
squares = {x ** 2 for x in range(10 )}
print(squares)
Работа с множествами и другими типами
данных
Множества и списки
Преобразование множества в список и обратно.
numbers = [1 , 2 , 2 , 3 , 4 , 4 , 5 ]
unique_numbers = list(set(numbers))
print(unique_numbers)
Множества и строки
Создание множества уникальных символов строки.
string = "hello world"
unique_chars = set(string)
print(unique_chars)
Множества и кортежи
Множества могут содержать кортежи, так как они неизменяемы и хэшируемы.
coordinates = {(1 , 2 ), (3 , 4 ), (5 , 6 )}
print(coordinates)
Множества и словари
Ключи словаря могут быть преобразованы в множество.
my_dict = {"a" : 1 , "b" : 2 , "c" : 3 }
keys_set = set(my_dict.keys())
print(keys_set)
Полезные приемы и трюки с множествами
Нахождение дубликатов в списке
numbers = [1 , 2 , 2 , 3 , 4 , 4 , 5 ]
duplicates = set(x for x in numbers if numbers.count(x) > 1 )
print(duplicates)
Удаление элементов, присутствующих в другом списке
list1 = [1 , 2 , 3 , 4 , 5 ]
list2 = [2 , 4 , 6 ]
result = list(set(list1) - set(list2))
print(result)