9. Множества.

Онлайн-тренажер Python 3 для начинающих

Теория без воды. Задачи с автоматической проверкой. Подсказки на русском языке. Работает в любом современном браузере.

начать бесплатно

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

Множества в Python представляют собой неупорядоченные коллекции уникальных (то есть неповторяющихся) элементов. Они полезны для выполнения множества операций, таких как объединение, пересечение, разность и симметричная разность. Рассмотрим подробно создание, использование и различные операции с множествами.
 
Создание множеств
 
Пустое множество
Для создания пустого множества используйте функцию set(), так как {} создаст пустой словарь.
empty_set = set()
 
Множество с элементами
fruits = {"apple", "banana", "cherry"}
 
Преобразование списка в множество
numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = set(numbers)
print(unique_numbers)  # {1, 2, 3, 4, 5}
 
Основные операции с множествами
 
Добавление элементов
 
Метод add()
Добавляет один элемент в множество.
fruits = {"apple", "banana"}
fruits.add("cherry")
print(fruits)  # {"apple", "banana", "cherry"}
 
Метод update()
Добавляет несколько элементов в множество.
fruits = {"apple", "banana"}
fruits.update(["cherry", "date"])
print(fruits)  # {"apple", "banana", "cherry", "date"}
 
Удаление элементов
 
Метод remove()
fruits = {"apple", "banana", "cherry"}
fruits.remove("banana")
print(fruits)  # {"apple", "cherry"}
 
Метод discard()
Удаляет элемент из множества, если он существует. Если элемент не найден, не вызывает ошибок.
fruits = {"apple", "banana", "cherry"}
fruits.discard("banana")
print(fruits)  # {"apple", "cherry"}
 
Метод pop()
Удаляет и возвращает случайный элемент из множества. Если множество пусто, вызывает KeyError.
fruits = {"apple", "banana", "cherry"}
removed_fruit = fruits.pop()
print(removed_fruit)
print(fruits)
 
Метод clear()
Удаляет все элементы из множества.
fruits = {"apple", "banana", "cherry"}
fruits.clear()
print(fruits)  # set()
 
Операции с множествами
 
Объединение множеств
 
Оператор | и метод union()
a = {1, 2, 3}
b = {3, 4, 5}
union_set = a | b
print(union_set)  # {1, 2, 3, 4, 5}

union_set = a.union(b)
print(union_set)  # {1, 2, 3, 4, 5}
 
Пересечение множеств
 
Оператор & и метод intersection()
a = {1, 2, 3}
b = {3, 4, 5}
intersection_set = a & b
print(intersection_set)  # {3}

intersection_set = a.intersection(b)
print(intersection_set)  # {3}
 
Разность множеств
 
Оператор - и метод difference()
a = {1, 2, 3}
b = {3, 4, 5}
difference_set = a - b
print(difference_set)  # {1, 2}

difference_set = a.difference(b)
print(difference_set)  # {1, 2}
 
Симметричная разность множеств
 
Оператор ^ и метод symmetric_difference()
a = {1, 2, 3}
b = {3, 4, 5}
symmetric_difference_set = a ^ b
print(symmetric_difference_set)  # {1, 2, 4, 5}

symmetric_difference_set = a.symmetric_difference(b)
print(symmetric_difference_set)  # {1, 2, 4, 5}
 
Проверка подмножеств и надмножеств
 
Метод issubset()
Проверяет, является ли одно множество подмножеством другого.
a = {1, 2, 3}
b = {1, 2, 3, 4, 5}
is_subset = a.issubset(b)
print(is_subset)  # True
 
Метод issuperset()
Проверяет, является ли одно множество надмножеством другого.
a = {1, 2, 3, 4, 5}
b = {1, 2, 3}
is_superset = a.issuperset(b)
print(is_superset)  # True
 
Метод isdisjoint()
Проверяет, не имеют ли множества общих элементов.
a = {1, 2, 3}
b = {4, 5, 6}
is_disjoint = a.isdisjoint(b)
print(is_disjoint)  # True
 
Перебор элементов множества
fruits = {"apple", "banana", "cherry"}
for fruit in fruits:
    print(fruit)
 
Генераторы множеств
Генераторы множеств позволяют создавать множества с помощью краткой записи.
squares = {x ** 2 for x in range(10)}
print(squares)  # {0, 1, 4, 9, 16, 25, 36, 49, 64, 81}
 
Работа с множествами и другими типами данных
 
Множества и списки
Преобразование множества в список и обратно.
numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = list(set(numbers))
print(unique_numbers)  # [1, 2, 3, 4, 5]
 
Множества и строки
Создание множества уникальных символов строки.
string = "hello world"
unique_chars = set(string)
print(unique_chars)  # {'d', 'e', 'h', 'l', 'o', 'r', 'w'}
 
Множества и кортежи
Множества могут содержать кортежи, так как они неизменяемы и хэшируемы.
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)  # {'a', 'b', 'c'}
 
Полезные приемы и трюки с множествами
 
Нахождение дубликатов в списке
numbers = [1, 2, 2, 3, 4, 4, 5]
duplicates = set(x for x in numbers if numbers.count(x) > 1)
print(duplicates)  # {2, 4}
 
Удаление элементов, присутствующих в другом списке
list1 = [1, 2, 3, 4, 5]
list2 = [2, 4, 6]
result = list(set(list1) - set(list2))
print(result)  # [1, 3, 5]

категории

ТЕОРИЯ

  • Введение в Python
  • Основы программирования на Python
  • Управляющие конструкции
  • Структуры данных
  • Функции и модули
  • Обработка исключений
  • Работа с файлами и потоками
  • файловая система
  • Объектно-ориентированное программирование (ООП)
  • Регулярные выражения
  • Дополнительные темы

Мы в соцсетях