Общая информация о множествах (set и frozenset)
2
Множество в языке Питон — это структура данных, эквивалентная множествам в математике. В множество можно добавлять и удалять элементы, можно перебирать элементы множества, можно выполнять операции над множествами (объединение, пересечение, разность). Можно проверять принадлежность элемента множеству.
Множество в Python - "контейнер", содержащий неповторяющиеся элементы в случайном порядке.
Элементы множества
3
В отличие от списков, где элементы хранятся в виде последовательного списка, в множествах порядок хранения элементов не определен.
Элементами множества может быть любой неизменяемый тип данных: числа, строки, кортежи.
Каждый элемент может входить в множество только один раз.
Отличие set от frozenset
4
Единственное отличие set от frozenset заключается в том, что
set - изменяемый тип данных, а frozenset - нет. Примерно похожая ситуация с списками и кортежами.
Создание множества (set и frozenset)
5
Создать пустое множество при помощи функции set():
A = set()
Создать множество перечислением всех его элементов в фигурных скобках:
A = {1, 2, 3}
Создать множество из элементов списка, строки, кортежа:
A = set('qwerty') {'t', 'y', 'q', 'r', 'e', 'w'}
Создать множество с помощью генератора множеств:
A = {i ** 2 for i in range(10)} {0, 1, 4, 81, 64, 9, 16, 49, 25, 36}
Множества имеет литерал { }, но пустое множество с помощью литерала создать нельзя.
a = {} # Так нельзя! получится словарь
Операции с элементами множества
7
Функция len - определяет число элементов в множестве
Операция in/not in – определяет принадлежит/не принадлежит ли элемент множеству (возвращает значение типа bool: True/False)
Метод add - добавление элемента в множество
p = {2, 3, 5, 7, 11}
print (len(p))
for i in p:
print(i, end=' ')
5
2 3 5 7 11
A = {1, 2, 3}
print(1 in A, 4 not in A)
A = {1, 2, 3}
A.add(4)
for num in A:
print(num, end=' ')
True True
1 2 3 4
Операции с элементами множества (продолжение)
8
4. Методы discard или remove – удаление элемента x из множества
Метод pop удаляет из множества один
случайный элемент и возвращает его значение
set.copy() - копия множества
set.clear() - очистка множества
A = {1, 2, 3, 4, 5}
A.discard(3)
A.remove(4)
print(A.pop())
print(A)
1 2 4 5
1 2 5
1
2 5
Операции с множествами и задание
9
A | B A.union(B) | Возвращает множество, являющееся объединением множеств A и B. |
A |= B A.update(B) | Добавляет в множество A все элементы из множества B. |
A & B A.intersection(B) | Возвращает множество, являющееся пересечением множеств A и B. |
A &= B A.intersection_update(B) | Оставляет в множестве A только те элементы, которые есть в множестве B. |
A - B A.difference(B) | Возвращает разность множеств A и B (элементы, входящие в A, но не входящие в B). |
A -= B A.difference_update(B) | Удаляет из множества A все элементы, входящие в B. |
A ^ B A.symmetric_difference(B) | Возвращает симметрическую разность множеств A и B (элементы, входящие в A или в B, но не в оба из них одновременно). |
A ^= B A.symmetric_difference_update(B) | Записывает в A симметрическую разность множеств A и B. |
A <= B A.issubset(B) | Возвращает true, если A является подмножеством B. |
A >= B A.issuperset(B) | Возвращает true, если B является подмножеством A. |
A < B | Эквивалентно A <= B and A != B |
A > B | Эквивалентно A >= B and A != B |
Составьте программу по алгоритму (mnojestva):
Задайте два исходных множества A {1,2,3,4,5} и B{1,2,4,5,6}.
Получите множество С: объедините A и B
Определите число элементов в множестве C
Добавьте в множество C элемент 0.
Получите множество D пересечением множеств A и B
Получите множество R: разность множеств A и B
Добавьте в множество А все элементы из множества B.
Удалите из множества A все элементы, входящие в B.
Оставьте в множестве C только те элементы, которые есть в множестве B.
Удалите из множества C элемент 6
Принадлежит ли элементы 5,6 множеству C.
Удалите (очистите) все элементы из множества С
Результат должен быть таким:
{1,2,3,4,5} {1,2,4,5,6}.
{1,2,3,4,5,6}
6
{0,1,2,3,4,5,6}
{1,2,4,5}
{3}
{1,2,3,4,5,6}
{3}
{1,2,4,5,6}
{1,2,4,5}
True False
{}
© ООО «Знанио»
С вами с 2009 года.