Множества. Основные понятия. Создание множества. Операция in. Операции над множествами создающие новое множество
Содержание
- 1. Понятие множества
- 2. Создание объекта типа «множество». Функция set(). Примеры
- 3. Базовые операции над множествами. Перечень
- 4. Операции in, not in. Проверка элемента на вхождение. Пример
- 5. Операция –. Разность множеств. Пример
- 6. Операция |. Объединение множеств. Пример
- 7. Операция &. Пересечение множеств. Пример
- 8. Операция ^. Симметричная разность. Пример
- 9. Пример использования множеств для фильтрации списков
- Связанные темы
Поиск на других ресурсах:
1. Понятие множества
Язык программирования Python имеет средства для работы с множествами. В Python множество – это неупорядоченная коллекция элементов со следующими особенностями:
- все элементы множества уникальны. Иными словами в множестве не может быть двух одинаковых элементов;
- элементы множества есть неизменными объектами;
- элементы множества могут быть разных типов.
В Python множество представлено отдельным типом данных. Множества поддерживают операции, которые существуют в теории множеств из курса математики. Множество может быть пустым (не содержать элементов).
Примеры множеств в виде литералов.
# множество из 3-х элементов: 'а', 5, 'textbook' {'а', 5, "textbook"} # множество содержащее числа от 0 до 5 {0,1,2,3,4,5} # пустое множество { }
⇑
2. Создание объекта типа «множество». Функция set(). Примеры
Чтобы создать объект типа «множество» можно использовать один из нижеследующих способов:
- с помощью присваивания этому объекту множества элементов в фигурных скобках { };
- с помощью присваивания объекту некоторого результата, который был возвращен функцией set(). Функция set() позволяет превратить в множество объекты других типов;
- с помощью присваивания объекту результата некоторой операции над множествами (например, операции & пересечения множеств);
- с помощью присваивания объекту результата функции frozenset(). Функция frozenset() есть конструктором класса frozenset. Эта функция позволяет получить неизменяемое множество;
- с помощью присваивания объекту результата функции, возвращающей некоторое множество.
Пример.
# Множества # Создание объекта типа "множество" # 1. С помощью фигурных скобок { } x = { 0, 0, 1, 2, 3 } # x = {0, 1, 2, 3} - элементы в множестве не повторяются y = { 'a', "textbook", 5 } # y = {'a', 'textbook', 5} z = { True, False, 0.25, 'Hello' } # z = {False, True, 'Hello', 0.25} # 2. С помощью функции set x = set(['a', 5, "textbook", 5]) # x = {5, 'textbook', 'a'} y = set('Hello!') # y = {'l', 'o', 'e', '!', 'H'} z = set([0,1,2,3,4,5]) # z = {0, 1, 2, 3, 4, 5} # 3. С помощью некоторой операции x = { 1, 2, 3, 4 } & { 3, 2} # x = {2, 3} y = { 1, 2, 3, 4 } - { 1, 4} # y = {2, 3} z = { 'a', 'c', 5 } | { True } # z = {'a', 5, 'c', True} # 4. С помощью функции frozenset x = frozenset([1, 2, 3, 4]) # x - неизменяемое (immutable) множество # 5. С помощью функции возвращающей множество x = { 1, 2, 3, 4 } y = { 3, 5, 7 } z = x.union(y) # z = { 1, 2, 3, 4, 5, 7 }
⇑
3. Базовые операции над множествами. Перечень
Язык Python поддерживает следующие операции над множествами:
- in – проверка элемента на вхождение в множество;
- – (минус) – разность множеств;
- | – объединение множеств;
- & – пересечение множеств;
- – – симметричная разность.
⇑
4. Операции in, not in. Проверка элемента на вхождение. Пример
Операция in используется в случаях, когда нужно определить входит ли элемент в множество. Общая форма операции следующая:
Item in Set
где
- Item – некоторый объект (элемент), который нужно проверить на вхождение в множество Set. Если объект Item есть в множестве Set, то результат операции будет True. В противном случае результат операции будет False;
- Set – некоторое множество.
Как правило, операция in используется в операторах проверки условия.
В программах оператор in можно объединять с другими логическими операторами, например оператором not. В этом случае общая форма инструкции not in следующая
Item not in Set
Результат операции not in всегда противоположен результату операции in.
Пример 1.
# Множества # Операция in. Проверка вхождения элемента в множество # 1. Применение in x = { 3, 8, 'а', 'Hello' } # множество элементов a = 'Hello' # элемент if a in x: print('The element is in set') else: print('The element is not in set')
Пример 2. Объединение оператора in с логическим оператором not.
# Применение конструкции not in day = { 'Sun', 'Mon', 'Tue', 'Wed', 'Thi', 'Fri', 'Sat'} # Ввести день с клавиатуры inputDay = str(input('Input day of week: ')) # Проверка if inputDay not in day: print('Wrong day') else: print('OK')
Результат выполнения программы
Input day of week: sunday Wrong day
⇑
5. Операция –. Разность множеств. Пример
В Python операция разность множеств обозначается символом – (минус). Кроме того для определения разности множеств в Python реализована функция difference().
Общая форма операции – следующая:
set1 – set2
где
- set1 – множество, от которого вычитаются (удаляются) элементы, размещенные в множестве set2. При вычитании рассматриваются только те элементы, которые являются общими (одинаковыми) для двух множеств. В результате создается новое множество, содержащие элементы множества set1, которых нет в множестве set2;
- set2 – множество, определяющее элементы, которые нужно вычесть (удалить) из множества set1.
Операция разности множеств может образовывать цепи. В этом случае общая форма операции – следующая:
set1 - set2 - set3 - ... - setN
Пример.
# Множества # Операция -. Разность множеств # Однотипные элементы x = { 1, 2, 3, 5 } y = { 2, 8 } z = x - y # z = {1, 3, 5} v = y - x # v = {8} # Разнотипные элементы x = { 'a', True, 'Text' } y = { 2, 8, 16.23, 'a' } z = x - y # z = {True, 'Text'}
⇑
6. Операция |. Объединение множеств. Пример
Объединение множеств a и b – это образование такого множества c, элементы которого есть в множестве a или есть в множестве b. В языке Python для реализации объединения множеств можно использовать операцию | или функцию union().
Операция объединения множеств | имеет следующую общую форму
set1 | set2
где
- set1, set2 – некоторые множества, которые объединяются. Результирующее множество содержит все элементы множества set1 и все элементы множества set2.
Операция объединения множеств | может образовывать цепи как показано ниже
set1 | set2 | set3 | ... | setN
Пример.
# Множества # Операция |. Объединение множеств x = { 'a', 5, True } y = { 2, 3.85, False } z = x | y # z = {3.85, True, False, 2, 5, 'a'} v = x | y | { 170 } # v = {3.85, True, False, 2, 5, 'a', 170}
⇑
7. Операция &. Пересечение множеств. Пример
Пересечение двух множеств a, b – это множество c, которое содержит общие элементы множеств a, b. Каждый элемент множества c размещается в множестве a а также в множестве b.
В языке Python для реализации пересечения множеств используется операция & или функция intersection().
Операция пересечения множеств & имеет следующую общую форму
set1 & set2
где
- set1, set2 – множества, для которых нужно реализовать так называемое «пересечение». В результате получается новое множество, которое содержит элементы, которые входят в оба множества set1 и set2. Элементы, которые входят только в одно из множеств set1, set2 усекаются.
Операция пересечения множеств & может образовывать цепи
set1 & set2 & set3 & ... & setN
Пример.
# Множества # Операция &. Пересечение множеств # Результат - пустое множество, нет общих элементов x = { 'а', 5, True } y = { 2, 3.85, False } z = x & y # z = {} - пустое множество # Результат - непустое множество x = { 3, 2.25, True, 'abc' } y = { 2.25, 'abcd', 3, 7, True} z = x & y # z = {True, 2.25, 3}
⇑
8. Операция ^. Симметричная разность. Пример
Для получения симметричной разности множеств в языке Python можно использовать операцию ^ или функцию symmetric_difference().
Операция симметричной разности множеств есть обратной к операции пересечения множеств &. В этом случае в результирующее множество включаются элементы, которые не являются общими.
Общая форма операции следующая
set1 ^ set2
где
- set1, set2 – множества для которых реализуется симметричная разность. В результате получается новое множество, содержащее элементы, которые не являются общими для множеств set1, set2.
Операция ^ может образовывать цепи
set1 ^ set2 ^ set3 ^ ... ^ setN
Пример.
# Множества # Операция ^. Симметричная разность множеств # Результат - пустое множество, нет общих элементов x = { 1, 3, 5 } y = { 3, 5, 1 } z = x ^ y # z = {} - пустое множество # Значение 3 в множествах есть общим, поэтому оно не включено в результат x = { 1, 3, 5 } y = { 2, 3, 8 } z = x ^ y # z = {1, 2, 5, 8} - без значения 3 # Значения 'b', 'с' есть общими, поэтому они выбрасываются из результата x = { 'a', 'b', 'c' } y = { 'x', 'b', 'c', 'd', 'e' } z = x ^ y # z = {'e', 'a', 'd', 'x'}
⇑
9. Пример использования множеств для фильтрации списков
В примере определяются числа, входящие в список. Используется свойство множества, которое указывает, что в множестве элемент не может повторяться несколько раз.
# Использование множеств для фильтрации списков # 1. Создать список чисел от 1 до 10 List = [5, 3, 2, 3, 4, 2, 3, 7, 9, 5, 7] # 2. Определить, какие числа от 1 до 10 входят в список List numbers = set(List) # numbers = [2, 3, 4, 5, 7, 9] # 3. Вывести результат print('numbers = ', numbers)
Результат выполнения программы
numbers = [2, 3, 4, 5, 7, 9]
⇑
Связанные темы
- Операции и функции для определения надмножеств и подмножеств. Сравнение множеств
- Классы set, frozenset. Функции для работы с множествами. Назначение. Примеры
⇑