Теория
Множество хранит уникальные элементы
Множество отвечает на два основных вопроса: какие разные значения встретились и входит ли конкретное значение в набор. Повторное добавление уже существующего элемента не меняет множество.
Порядок элементов не является учебным контрактом множества. Если ответ требуется вывести упорядоченно, множество сначала передают функции sorted.
numbers = [3, 1, 3, 2, 1]unique = set(numbers)print(len(unique))print(2 in unique)Как исчезают повторы
При создании множества Python рассматривает каждый элемент, но хранит только один экземпляр каждого равного значения. Поэтому длина множества — это число различных значений, а не длина исходной последовательности.
Операции объединения и пересечения работают с принадлежностью. Пересечение оставляет только элементы, присутствующие с обеих сторон.
- Число 1 отсутствует во втором наборе и не входит в пересечение.
- Числа 2 и 3 есть в обоих наборах.
- Число 4 отсутствует в первом; итоговое пересечение содержит 2 и 3.
Нельзя обещать порядок обхода
Наблюдаемый в одном запуске порядок множества не следует использовать как часть решения. Представление может отличаться, а смысл структуры от этого не меняется.
Как выбрать множество
Используйте множество, когда порядок и повторы не несут смысла, зато важны уникальность или принадлежность. Если нужны позиции или повторяющиеся элементы, сохраните список.
- Назовите требуемый результат. Нужен порядок, количество повторов или только разные значения?
- Постройте множество. Удалите повторы только если это соответствует задаче.
- Выполните операцию. Проверьте принадлежность, пересечение или число элементов.
- Упорядочьте вывод при необходимости. Используйте sorted явно, а не полагайтесь на обход.
Практика
Посчитайте уникальные значения
Множество содержит 1, 2 и 3. Уникальных значений три.
Проверьте принадлежность
Проверка принадлежности истинна, поэтому результат — `True`.
Добавьте новое значение
Множество содержит два разных элемента: 1 и 5.
Не полагайтесь на порядок
Нет. Если порядок важен, значения нужно явно упорядочить, например функцией `sorted`.
Найдите пересечение
В обоих множествах присутствуют 2 и 3. Остальные значения встречаются только в одном.
Итог
Теперь вы можете использовать множество для уникальности, принадлежности и поиска общих элементов.
Возьмите два небольших списка с повторами, предскажите их уникальные значения и пересечение, затем проверьте результат программой.
Прогресс
0 / 5Вы ещё не решали задания