Множество (set) используются для сохранения нескольких элементов в одной переменной. Множество является одним из 4 встроенных типов данных Python, используемых для сохранения наборов данных. Другие 3 таких типа это список (List), кортеж (Tuple) и словарь (Dictionary), все они отличаются своими особенностями и использованием.
Множество это набор неупорядоченных, неизменяемых(1) и неиндексируемых элементов.
Примечание (1): "неизменяемых" означает, что значение отдельного элемента созданного множества поменять нельзя. Однако можно есть возможность удалять элементы из множества, а также добавлять в него новые элементы.
Множества создаются с помощью фигурных скобок. Очень похоже на списки, которые создаются с помощью квадратных скобок:
thislist = ["кокос", 'арбуз', 'апельсин']
thisset = {"яблоко", "банан", "вишня"} print(thislist) print(thisset)
Этот код напечатает(2):
['кокос', 'арбуз', 'апельсин'] {'яблоко', 'банан', 'вишня'}
Примечание (2): множества это неупорядоченные наборы элементов, поэтому вы не можете быть уверенными, в каком порядке будут появляться элементы множества.
Итак, элементы множества не упорядочены, не изменяемы, и не допускают дубликатов элементов. Этим они коренным образом отличаются от списков.
Не упорядоченность элементов множества. Это означает, что элементы в множестве не могут иметь какой-то заранее определенный порядок следования друг за другом. Т. е. нельзя гарантировать порядок извлечения элементов, когда вы обращаетесь к множеству в цикле. Также к элементам множества нельзя обращаться по индексу или ключевому слову (по имени элемента).
Не изменяемость элементов множества. Это означает, что после создания множества вы не можете менять его отдельные элементы с помощью присваивания, как это было возможно для списка. Однако вы можете удалять элементы из созданного множества, а также добавлять в него новые элементы.
Дубликаты элементов множества не допускаются. Это означает, то нельзя получить множество, где два его элемента имеют одинаковые значения. Дублирвоанные значения будут игнорироваться, например:
thisset = {"яблоко", "банан", "вишня", "яблоко"} print(thisset)
Этот код напечатает:
{'яблоко', 'вишня', 'банан'}
Замечание: значения True и 1 в множествах считаются одинаковыми, и обрабатываются как дубликаты. Например:
thisset = {"яблоко", "банан", "вишня", True, 1, 2} print(thisset)
Этот код напечатает:
{True, 2, 'яблоко', 'вишня', 'банан'}
Замечание: значения False и 0 в множествах считаются одинаковыми, и обрабатываются как дубликаты. Например:
thisset = {"яблоко", "банан", "вишня", False, True, 0} print(thisset)
Этот код напечатает:
{False, True, 'яблоко', 'вишня', 'банан'}
Получение длины множества. Как и для списка, длина множества это количество находящихся в нем элементов, и это можно узнать функцией len(). Например:
thisset = {"яблоко", "банан", "вишня"} print(len(thisset))
Этот код напечатает:
3
Типы данных элементов. Как вы уже наверное успели заметить, у множества могут быть элементы любого типа, и множество даже может содержать элементы разных типов. Все следующие выражения допустимы для Python:
set1 = {"яблоко", "банан", "вишня"}
set2 = {1, 5, 7, 9, 3}
set3 = {True, False, False}
set4 = {"abc", 3.14, True, 40, "male"}
type(). С точки зрения Python множества определены как объекты класса set, т. е. они имеют тип данных 'set': class 'set'.
Например:
thisset = {"яблоко", "банан", "вишня"} print(type(thisset))
Этот код напечатает:
< class 'set'>
Конструктор set(). Для создания множества может также использоваться конструктор set(). Обратите внимание, что используется двойные круглые скобки, например:
thisset = set(("яблоко", "банан", "вишня")) print(thisset)
[Коллекции Python (массивы)]
Существует 4 типа коллекций данных на языке программирования Python:
• List. Список: это коллекция элементов данных, которые упорядочены и изменяемы. Допускается использовать дубликаты элементов, и элементы могут быть любого типа.
• Tuple. Кортеж: это коллекция элементов данных, которые упорядочены и неизменяемы. Допускается использовать дубликаты элементов, и элементы могут быть любого типа.
• Set. Множество: это коллекция элементов данных, которые неупорядочены, незменяемы(3) и неиндексируемы. Не допускаются дубликаты элементов, и элементы могут быть любого типа.
• Dictionary. Словарь: это коллекция упорядоченных(4) элементов данных, которые допускается менять. Значения в словаре могут быть любого типа, не допускаются дубликаты элементов (см. [2]).
Примечания:
(3) Здесь "неизменяемость" означает, что значение отдельного элемента созданного множества поменять нельзя. Однако можно есть возможность удалять элементы из множества, а также добавлять в него новые элементы. (4) Начиная с версии Python 3.7 словари упорядочены. В Python 3.6 и более старых версий словари не упорядочены.
[Ссылки]
1. Python Sets site:w3schools.com. 2. Python: словари. |