Множества Python3
Множество — это неупорядоченная последовательность уникальных элементов.
Элементы множества не повторяются, и можно выполнять обычные операции над множествами, такие как пересечение, объединение и разность.
Фигурные скобки можно использовать{ }для создания множества, элементы которого разделяются запятыми,, или также можно использоватьset()функцию для создания множества.
Формат создания:
parame = {value01,value02,...}
或者
set(value)
Ниже приведён простой пример:
set1 = {1, 2, 3, 4} # 直接使用大括号创建集合
set2 = set([4, 5, 6, 7]) # 使用 set() 函数从列表创建集合
Примечание:Чтобы создать пустое множество, необходимо использовать set(), а не{ }, потому что{ }используется для создания пустого словаря.
Дополнительные примеры:
Пример (Python 3.0+)
>>> print(basket) # Здесь демонстрируется функция удаления дубликатов
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket # Быстро проверить, содержится ли элемент в множестве
True
>>> 'crabgrass' in basket
False
>>> # Ниже показаны операции между двумя множествами.
...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
{'a', 'r', 'b', 'c', 'd'}
>>> a - b # Элементы, содержащиеся в множестве a, но не в множестве b
{'r', 'd', 'b'}
>>> a | b # Все элементы, содержащиеся в множестве a или множестве b
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b # Элементы, содержащиеся одновременно в множестве a и множестве b
{'a', 'c'}
>>> a ^ b # Элементы, не содержащиеся одновременно в a и b
{'r', 'd', 'b', 'm', 'z', 'l'}
Подобно списковым включениям, множества также поддерживают включения множеств:
Пример (Python 3.0+)
>>> a
{'r', 'd'}
Основные операции над множествами
1. Добавление элементов
Формат синтаксиса следующий:
s.add( x )
Добавить элемент x в множество s; если элемент уже существует, операция не выполняется.
Пример (Python 3.0+)
>>> thisset.add("Facebook")
>>> print(thisset)
{'Taobao', 'Facebook', 'Google', 'Example'}
Существует также другой метод, который может добавлять элементы, и его параметр может быть списком, кортежем, словарём и т. д. Формат синтаксиса следующий:
s.update( x )
Может быть несколько значений x, разделённых запятыми.
Пример (Python 3.0+)
>>> thisset.update({1,3})
>>> print(thisset)
{1, 3, 'Google', 'Taobao', 'Example'}
>>> thisset.update([1,4],[5,6])
>>> print(thisset)
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'Example'}
>>>
2. Удаление элементов
Формат синтаксиса следующий:
s.remove( x )
Удалить элемент x из множества s; если элемент не существует, возникнет ошибка.
Пример (Python 3.0+)
>>> thisset.remove("Taobao")
>>> print(thisset)
{'Google', 'Example'}
>>> thisset.remove("Facebook") # Возникает ошибка, если элемент не существует
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'Facebook'
>>>
Кроме того, существует другой метод, который также удаляет элементы из множества, и ошибка не возникает, если элемент не существует. Формат следующий:
s.discard( x )
Пример (Python 3.0+)
>>> thisset.discard("Facebook") # Ошибка не возникает, если элемент не существует
>>> print(thisset)
{'Taobao', 'Google', 'Example'}
Мы также можем случайным образом удалить элемент из множества. Синтаксис следующий:
s.pop()
Пример в режиме скрипта (Python 3.0+)
x = thisset.pop()
print(x)
Результат вывода:
Example
Результаты теста каждый раз разные при многократном выполнении.
Метод pop множества располагает множество в неупорядоченном порядке, а затем удаляет первый элемент слева этого неупорядоченного множества.
3. Подсчёт количества элементов в множестве
Формат синтаксиса следующий:
len(s)
Подсчитайте количество элементов в множестве s.
Пример (Python 3.0+)
>>> len(thisset)
3
4. Очистка множества
Формат синтаксиса следующий:
s.clear()
Очистите множество s.
Пример (Python 3.0+)
>>> thisset.clear()
>>> print(thisset)
set()
5. Проверка наличия элемента в множестве
Формат синтаксиса следующий:
x in s
Определите, находится ли элемент x в множестве s; верните True, если он существует, и False, если нет.
Пример (Python 3.0+)
>>> "Example" in thisset
True
>>> "Facebook" in thisset
False
>>>
Полный список встроенных методов множеств
| Метод | Описание |
|---|---|
| add() | Добавление элементов в множество |
| clear() | Удалить все элементы из множества |
| copy() | Скопировать множество |
| difference() | Вернуть разность нескольких множеств |
| difference_update() | Удалить элемент из множества, если он также существует в указанном множестве. |
| discard() | Удалить указанный элемент из множества |
| intersection() | Вернуть пересечение множеств |
| intersection_update() | Вернуть пересечение множеств. |
| isdisjoint() | Определяет, содержат ли два множества одинаковые элементы; возвращает True, если не содержат, иначе возвращает False. |
| issubset() | Определяет, является ли указанное множество подмножеством множества, переданного в качестве параметра этому методу. |
| issuperset() | Определяет, является ли множество, переданное в качестве параметра этому методу, подмножеством указанного множества. |
| pop() | Удаляет случайный элемент |
| remove() | Удаляет указанный элемент |
| symmetric_difference() | Возвращает множество элементов, которые не повторяются в двух множествах. |
| symmetric_difference_update() | Удаляет из текущего множества элементы, совпадающие с элементами другого указанного множества, и вставляет различные элементы из другого указанного множества в текущее множество. |
| union() | Вернуть объединение двух множеств |
| update() | Добавление элементов в множество |
| len() | Подсчитать количество элементов в множестве |