Перейти к основному содержимому

Множества в Python

Множество позволяет хранить в одной переменной сразу несколько элементов.

В Python есть четыре встроенных типа коллекций: список, кортеж, словарь и множество. Каждый из них ведёт себя по-своему и подходит для разных задач.

Особенным множество делает то, что оно неупорядоченное, неизменяемое* и неиндексируемое.

Примечание: «неизменяемость» относится к уже существующим элементам: вы по-прежнему можете добавлять новые и удалять старые.

Чтобы записать множество, поместите его элементы в фигурные скобки.

Пример

Создайте множество и выведите его:

Prompt
Создайте множество Python с элементами "apple", "banana" и "cherry". Выведите множество.
Вывод: полная программа на Python

Введение во множества

main.py
myset = {"apple", "banana", "cherry"}

Элементы множества

Элементы множества описывают три правила: у них нет порядка, их нельзя изменить, и ни одно значение не может встретиться дважды.


Неупорядоченность

Множество хранит свои элементы без определённой последовательности.

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


Неизменяемость

Когда множество уже существует, элементы внутри него остаются такими, какие есть: ни один из них изменить нельзя.

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


Дубликаты не допускаются

Каждое значение во множестве должно быть уникальным, поэтому два равных элемента никогда не могут находиться в нём рядом.

Примечание: для множества True и 1 считаются одним значением, поэтому второе отбрасывается как дубликат.

Примечание: то же самое относится к False и 0: множество тоже считает их одним значением.

Пример

Второй «apple» просто отбрасывается:

Prompt
Создайте множество Python с повторяющимися значениями: "apple", "banana", "cherry", "apple". Выведите множество, чтобы показать, что дубликаты удаляются.
Вывод: полная программа на Python

Пример

Здесь True и 1 сливаются в один элемент:

Prompt
Создайте множество, содержащее "apple", "banana", "cherry", True, 1 и 2. Выведите множество, чтобы показать, что True и 1 считаются дубликатами.
Вывод: полная программа на Python

Пример

Здесь False и 0 сливаются в один элемент:

Prompt
Создайте множество, содержащее "apple", "banana", "cherry", False, True и 0. Выведите множество, чтобы показать, что False и 0 считаются дубликатами.
Вывод: полная программа на Python

Получение длины множества

Функция len() сообщает, сколько элементов во множестве.

Пример

Подсчитайте элементы множества:

Prompt
Создайте множество из трёх элементов и используйте функцию len(), чтобы получить количество элементов. Выведите результат.
Вывод: полная программа на Python

Элементы множества — типы данных

Элементы множества не ограничены одним типом данных.

Вы можете даже сочетать несколько типов в одном множестве:

Пример

Одно множество строк, одно целых чисел и одно логических значений:

Prompt
Создайте три множества: одно со строками, одно с целыми числами и одно с логическими значениями. Покажите, что элементы множества могут быть любого типа данных.
Вывод: полная программа на Python

Пример

Строки, целые числа и логические значения вместе в одном множестве:

Prompt
Создайте множество, содержащее разные типы данных: строку, целое число и логическое значение. Покажите, что множество может содержать данные разных типов.
Вывод: полная программа на Python

type()

Python считает каждое множество объектом, а его тип данных называется 'set':

Пример

Спросите у Python, какого типа множество:

Prompt
Создайте множество и используйте функцию type(), чтобы проверить его тип данных. Выведите результат.
Вывод: полная программа на Python

Конструктор set()

Фигурные скобки — не единственный вариант: множество создаёт и конструктор set().

Пример

Создайте множество с помощью конструктора set():

Prompt
Используйте конструктор set(), чтобы создать множество с элементами "apple", "banana" и "cherry". Выведите множество.
Вывод: полная программа на Python

Коллекции Python (массивы)

Язык Python предлагает вам четыре типа данных-коллекций:

  • Список сохраняет порядок и может изменяться. Повторяющиеся элементы допускаются.
  • Кортеж сохраняет порядок, но не может изменяться. Повторяющиеся элементы допускаются.
  • Множество не имеет порядка и индексов, а его элементы неизменяемы*. Каждый элемент уникален.
  • Словарь сохраняет порядок** и может изменяться. Каждый элемент уникален.

*Нельзя изменять существующие элементы множества, хотя добавлять и удалять их разрешено.

**Словари стали упорядоченными в Python версии 3.7; вплоть до Python 3.6 включительно они были неупорядоченными.

Если вы знаете, что может и чего не может каждый тип, вам легче сделать хороший выбор. Подходящий для ваших данных тип может сохранить их смысл и сделать программу эффективнее или безопаснее.