яндекс
  • 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 9. Множества

Задача «Симметрическая разность множеств студентов»

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib
Вы работаете в университете и хотите определить, какие студенты записались либо на курс A, либо на курс B, но не на оба курса одновременно. Это поможет вам выявить студентов, которые уникальны для каждого курса.
Напишите программу, которая на вход дает два списка студентов (идентификационные номера), находит их симметрическую разность и выводит результат.
 
Пример:
Input:
            [101, 102, 103, 104, 105, 106]
           [104, 105, 106, 107, 108, 109] Output:             {101, 102, 103, 107, 108, 109}
 
Подсказка:
Множества в Python — это неупорядоченные коллекции уникальных элементов. Они обладают рядом полезных свойств и методов, которые позволяют эффективно выполнять операции над данными, такие как объединение, пересечение, разность и другие.
 
Основные характеристики множеств
Уникальные элементы: В множестве не может быть дублирующихся элементов.
Неупорядоченность: Элементы множества не имеют определенного порядка.
Изменяемость: Элементы множества можно добавлять и удалять, хотя сами множества изменяемы, они могут содержать только неизменяемые (хешируемые) объекты, такие как числа, строки и кортежи.
 
Создание множеств
 
Пустое множество
Для создания пустого множества необходимо использовать функцию set(), так как {} создаёт пустой словарь.
my_set = set()
 
Множество с элементами
my_set = {1, 2, 3, 4, 5}
 
Или используя функцию set():
my_set = set([1, 2, 3, 4, 5])
 
Основные операции с множествами
 
Добавление элементов
 
Используется метод add()
my_set = {1, 2, 3}
my_set.add(4)
print(my_set)  # Вывод: {1, 2, 3, 4}
 
Удаление элементов
remove() удаляет указанный элемент, вызывает ошибку KeyError, если элемент не найден.
discard() удаляет указанный элемент, не вызывает ошибку, если элемент не найден.
pop() удаляет и возвращает случайный элемент множества.
my_set = {1, 2, 3}
my_set.remove(2)
print(my_set)  # Вывод: {1, 3}

my_set.discard(4)  # Ошибки не будет, несмотря на отсутствие элемента

popped_element = my_set.pop()
print(popped_element)  # Вывод: 1 или 3
print(my_set)  # Вывод: оставшийся элемент
 
Очистка множества
Метод clear() удаляет все элементы из множества.
my_set = {1, 2, 3}
my_set.clear()
print(my_set)  # Вывод: set()
 
Операции над множествами
 
Объединение (Union)
Операция объединения возвращает новое множество, содержащее все уникальные элементы из обоих множеств. Используется оператор | или метод union().
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1 | set2
# или
union_set = set1.union(set2)
print(union_set)  # Вывод: {1, 2, 3, 4, 5}
 
Пересечение (Intersection)
Операция пересечения возвращает новое множество, содержащее только те элементы, которые присутствуют в обоих множествах. Используется оператор & или метод intersection().
set1 = {1, 2, 3}
set2 = {3, 4, 5}
intersection_set = set1 & set2
# или
intersection_set = set1.intersection(set2)
print(intersection_set)  # Вывод: {3}
 
Разность (Difference)
Операция разности возвращает новое множество, содержащее элементы, которые присутствуют в первом множестве, но отсутствуют во втором. Используется оператор - или метод difference().
set1 = {1, 2, 3}
set2 = {3, 4, 5}
difference_set = set1 - set2
# или
difference_set = set1.difference(set2)
print(difference_set)  # Вывод: {1, 2}
 
Симметрическая разность (Symmetric Difference)
Операция симметрической разности возвращает новое множество, содержащее элементы, которые присутствуют в одном из множеств, но не в обоих. Используется оператор ^ или метод symmetric_difference().
set1 = {1, 2, 3}
set2 = {3, 4, 5}
symmetric_difference_set = set1 ^ set2
# или
symmetric_difference_set = set1.symmetric_difference(set2)
print(symmetric_difference_set)  # Вывод: {1, 2, 4, 5}
 
Solution
Входные данные
Выходные данные

Тесты

2 3 6 1 1
2 3 6 1 1
2 3 6 1 1
2 3 6 1 1
2 3 6 1 1
2 3 6 1 1

🎉 Поздравляем! 🎉

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

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...