Инструменты пользователя

Инструменты сайта


python:sets:mnozhestva

sets (множества)

Множества — неупорядоченные наборы уникальных объектов, поддерживающих хеширование. Множества могут быть изменяемыми и неизменяемыми. Размерность и состав созданного однажды неизменяемого множества не может меняться, вместо этого обычно создаётся новое множество.

Множества обычно используются для проверки вхождения элемента, устранения из последовательности дубликатов, и таких математических операций как: пересечение, объединение, разница и симметичная разница.

Множества не упорядочены, они не хранят ни позицию элемента, ни порядок вставки. Поэтому наборы не поддерживают ни обращение к элементам по индексам, ни срезы, ни какое-либо другое поведение, присущее последовательностям.

В двоичных операций, где участуют сразу и множество и статичное множество, результатом будет тип первого операнда. Например, в my = frozenset('ab') | set('bc') my будет статичным множеством.

Инициалзация множества

s = {'apple', 'orange', 'pear', 'banana'}
 
print(s, type(s)) # {'pear', 'apple', 'banana', 'orange'} <class 'set'>
 
s = set('apple')
print(s) # {'a', 'l', 'e', 'p'} - Выкидывает повторяющиеся объекты
числа при формирования множества

числа при формирования множества сортируются по возростанию

s = {i for i in range(1, 10)}
print(s) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
Пустое множество
s = {}
print(s, type(s)) #{} <class 'dict'>, создается не множество а словарь
 
s = set()# Правильно использовать конструктор set
print(s, type(s)) # set() <class 'set'>

Проход по элементам

Проход по элементам последовательности производится при помощи for in:

for item in {1, 2, 'some'}:
        print(item)

Количество элементов

Количество элементов в последовательности можно получить, используя функцию len().

len({1, 2, 'some'})  # 3

Сравнение

Два множества равны тогда и только тогда, когда каждый из элементов множества содержится во втором (когда каждое из множест является подмножеством другого).

Одно множество меньше другого тогда и только тогда, если первое является правильным подмножеством последнего (является подмножеством, но не равно).

Одно множество больше другого тогда и только тогда, когда первое является правильным надмножеством последнего (является надмножеством, но не равно).

Два любых непустых непересекающихся множества не являются равными и не являются подмножествами друг для друга, поэтому следующию сравнения вернут False: a == b, a > b, a < b. Множества не реализуют метод cmp().

Ввиду того, что множества реализуют частичное упорядочивание (отношения подмножеств), результат метода list.sort() для списка множеств не определён.

python/sets/mnozhestva.txt · Последние изменения: 2023/01/12 12:18 (внешнее изменение)