Множества. Язык программирования Python Множество (set, frozenset)
Скачать 313 Kb.
|
Язык программирования PythonМножество (set, frozenset)Множества в Python - неупорядоченные совокупности объектов произвольных типов, заключенные в фигурные скобки Например: {23, 656, -20, 67, -45} # множество целых чисел {4.15, 5.93, 6.45, 9.3, 10.0, 11.6} # множество из дробных чисел {"Katy", "Sergei", "Oleg", "Dasha”} # множество из строк {"Москва", "Титова", 12, 148.4} # смешанное множество {[0, 0, 0], [0, 0, 1], (0, 1, 0), {100}} # множество, состоящее из списков, кортежa и множества Особенности множестваЭлементы множества неупорядочены Множество (set) можно изменять Множество (frozenset ) неизменяемый объект Множество не содержит одинаковых элементов С множествами можно выполнять операции объединения, пересечения, вычитания и др. 1. Пустое множество: >>> a = set() Запись вида а = {} не верна! 2. Одноэлементное множество: >>> a = {5} >>> print(a) {5} 3. Произвольное множество можно создать простым перечислением элементов: >>> a = {1, 2, 3, 4, 5} >>> print(a) {1, 2, 3, 4, 5} Или >>> a = set((1, 2, 3, 4, 2, 1, 4)) # скобки! >>> print(a) {1, 2, 3, 4} Или >>> a = set('hello, world!‘) >>> a {',', 'w', ' ', 'h', 'l', 'e', 'd', 'r', 'o‘, ‘!’} Задание множества4. Можно задать с помощью генератора: >>> a = {i ** 2 for i in (10)} >>> print(a) {0, 1, 4, 81, 64, 9, 16, 49, 25, 36} Доступ к элементам множестваПроход по элементам множества производится при помощи for in: >>> for item in {1, 2, 'some'}: print(item) Результат: some 2 1 Принадлежность элемента множеству определяет логическая операция in, принимающая значение True, если элемент принадлежит множеству. Добавление элементов в множествоДля добавления элемента в множество есть метод add: a = {1, 2, 3} print(a) # {1, 2, 3} a.add(4) print (a) # {1, 2, 3, 4} Удаление элементов из множестваДля удаления элемента из множества есть три метода: discard, remove и pop. 1) а.discard(x) – удаляет указанный элемент х из множества а. Если такого элемента нет, то ничего не происходит. 2) а. remove(х) – также удаляет указанный элемент х из множества а. Но! Когда удаляемый элемент отсутствует в множестве, метод remove генерирует исключение KeyError. Поэтому лучше проверить наличие: a = {'Алина', 'Ксения', 'Елизавета', 'Алена'} name = input('Кого удаляем? ') if name in a: a.remove(name) print(a) 3) а.pop() - удаляет из множества один случайный элемент и возвращает его значение. Если же множество пусто, то генерируется исключение KeyError. Арифметические операции1. Объединение множеств (сложение). Обозначение: c = a | b a b c Возвращает множество, являющееся объединением множеств a и b. a.union(b) Арифметические операции2. Пересечение множеств (умножение). Обозначение: c = a & b a b c Возвращает множество элементов, принадлежащих одновременно двум множествам, то есть общие элементы множеств a и b. a.intersection(b) Арифметические операции3. Разность множеств (вычитание). Обозначение: c = a - b a b c Возвращает множество элементов, входящих в a, но не входящих в b. a.difference(b) Арифметические операции4. Симметрическая разность множеств. Обозначение: c = a ^ b a b c Возвращает множество элементов, входящих в а или в b, но не в оба из них одновременно. a.symmetric_difference(b) Логические операции
Некоторые полезные методы len(a) - число элементов в множестве a (размер множества). a.isdisjoint(b) - истина, если множества a и b не имеют общих элементов. a.copy() - копия множества. a.clear() - очистка множества. ЗадачаВводится «длинное число». Каких цифр нет в записи этого числа? Например, вводим: 5840393. В этом числе нет цифр: 1, 2, 6, 7 Скриптn = input('Введите число: ') m = set(n) print(m) c = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'} x = c - m print(x) |