Множини (також зустрічається переклад набори) використовуються для зберігання кількох елементів в одній змінній. Елементи множин не впорядковані, незмінні та не допускають повторюваних значень.
Невпорядкований означає, що елементи множини не мають визначеного порядку.
Елементи множини можуть відображатися в іншому порядку кожного разу, коли ви їх використовуєте, і на них не можна посилатися за індексом або ключем.
Елементи множини є незмінними, тобто ми не можемо змінити елементи після створення множини.
Після створення множини ви не можете змінити її елементи, але ви можете видалити елементи та додати нові елементи.
Множини не можуть мати два елементи з однаковим значенням. Повторювані значення ігноруватимуться.
У множинах не можна використовувати дублікати. Кожен елемент має бути унікальним.
Приклад з відео:
#True та 1 у множинах вважаються однаковими значеннями.
#Значення False та 0 у множинах також розглядаються як однакові
#та вважаться дублікатами.
varCarSet = {"Dodge", "Ford", "Toyota", "Dodge", True, 1, False,0}
print(varCarSet)
Визначення довжини множин в Python
Для визначення довжини множин використовуй функцію len(). Приклад з відео:
#Для визначення кількості елементів множини
#використовуйте функцію len()
varCarSet = {"Dodge", "Ford", "Toyota"}
print(varCarSet)
lengthOfVarCarSet = len(varCarSet)
print(lengthOfVarCarSet)
Типи даних елементів множин
У множинах можуть зберігатися дані різних типів. Приклад з відео:
#Елементи множини можуть бути будь-якого типу
#Множина може містити елементи різних типів
varCarSet = {"Dodge", "Ford", "Toyota"}
varNumSet = {1,3,5,7,9}
varBoolSet = {True, False}
varBusketSet = {3, "Text", True, 5.75}
print(varCarSet)
print(varNumSet)
print(varBoolSet)
print(varBusketSet)
Конструктор set()
Конструктор set() у Python використовується для створення нового об’єкта множини. Він може приймати ітеровані об’єкти (наприклад, списки або рядки) і створювати множину з унікальних елементів. Якщо викликати set() без аргументів, він створює порожню множину.
Приклад з відео:
#Можна використовувати конструктор set() для створення множини.
varCarSet1 = set(("Dodge", "Ford", "Toyota"))
print(varCarSet1)
print(type(varCarSet1))
Доступ до елементів множин
Множини (sets) у Python не підтримують доступ до своїх елементів за індексом, оскільки вони не мають порядку. Приклад з відео:
#Ви не можете отримати доступ до елементів множини
#за допомогою індекса або ключа.
#Але можна пройти через елементи множини
#за допомогою цикла for.
varCarSet = {"Dodge", "Ford", "Toyota", "BMW", "Lincoln"}
for car in varCarSet:
print(car)
if "Lincoln" in varCarSet:
print("Lincoln is in varCarSet")
else:
print("Lincoln is not in varCarSet")
Додавання елементів множин
Метод add() у множинах Python використовується для додавання нового елемента до множини. Якщо елемент вже існує у множині, метод нічого не змінює, оскільки множини не допускають дублікати. Приклад з відео:
#Коли множину створено,
#ви не можете змінити її елементи,
#але ви можете додати нові елементи.
#Щоб додати новий елемент до множини
#використовуйте метод add().
varCarSet = {"Dodge", "Ford", "Toyota"}
print(varCarSet)
varCarSet.add("Lincoln")
varCarSet.add("Chrysler")
print(varCarSet)
Метод update()
Метод update() у множинах Python використовується для додавання елементів з іншого ітерованого об’єкта (наприклад, списку, кортежу, або іншої множини) до існуючої множини. Якщо нові елементи вже є в множині, вони не будуть додані повторно, оскільки множини не допускають дублікати. Приклад з відео:
#Для того щоб додати елементи в однієї множини в іншу,
#використовуйте метод update()
varCarSet1 = {"Dodge", "Ford", "Toyota"}
varCarSet2 = {"Alfa Romeo", "Chrysler"}
print(varCarSet1)
print(varCarSet2)
varCarSet1.update(varCarSet2)
print(varCarSet1)
print(varCarSet2)
Приклад з відео з додаванням списку:
#Об'єкт у методі update() необов'язково
#повинен бути множиною,
#це може бути будь-який ітерабельний об'єкт
varCarSet1 = {"Dodge", "Ford", "Toyota"}
varCarList1 = ["BMW", "Lincoln"]
print(varCarSet1)
print(varCarList1)
varCarSet1.update(varCarList1)
print(varCarSet1)
print(varCarList1)
Метод remove()
Метод remove() у множинах Python використовується для видалення конкретного елемента з множини. Якщо елемента, який потрібно видалити, немає в множині, метод викликає помилку KeyError. Приклад з відео:
#Для видалення елемента з множини
#використовуйте метод remove()
#Якщо елемент, який потрібно видалити, не існує,
# метод remove() поверне помилку
varCarSet = {"Dodge", "Ford", "Toyota", "Car1"}
print(varCarSet)
varCarSet.remove("Car1")
print(varCarSet)
#varCarSet.remove("Car1")
Метод discard()
Метод discard() у множинах Python використовується для видалення конкретного елемента з множини, але на відміну від remove(), він не викликає помилку, якщо елемент не знайдено. Це робить discard() зручнішим, коли ти не впевнений, чи є елемент у множині. Приклад з відео:
#Можна використовувати метод discard для видалення елементу
#Якщо елемент, який потрібно видалити, не існує,
#то метод discard() не поверне помилку
varCarSet = {"Dodge", "Ford", "Toyota", "Car1"}
print(varCarSet)
varCarSet.discard("Car1")
print(varCarSet)
varCarSet.discard("Car1")
print(varCarSet)
Метод pop()
Метод pop() у множинах Python видаляє та повертає довільний елемент з множини. Оскільки множини не мають певного порядку, який елемент буде видалено, не можна передбачити. Якщо множина порожня і ти спробуєш викликати pop(), буде викликана помилка KeyError. Приклад з відео:
#Можна також використовувати метод pop()
#для видалення елементу,
#але цей метод видалить випадковий елемент,
#тому ви не можете бути певні,
#який саме елемент буде видалено.
#Значення, яке повертає метод pop(),
#і є тим самим видаленим елементом.
varCarSet = {"Car1", "Car2", "Car3"}
print(varCarSet)
removedItem = varCarSet.pop()
print(varCarSet)
print("Removed item is {}".format(removedItem))
Метод clear()
Метод clear() у множинах Python видаляє всі елементи з множини, в результаті чого множина стає порожньою. Приклад з відео:
#Метод clear() очищає множину
varCarSet = {"Dodge", "Ford", "Toyota"}
print(varCarSet)
varCarSet.clear()
print(varCarSet)
del varCarSet
#print(varCarSet)
Метод union()
Метод union() у множинах Python використовується для створення нової множини, яка містить усі елементи з двох або більше множин. Це метод повертає нову множину, яка є об’єднанням двох або більше множин. Приклад з відео:
#Можна використати метод union(),
#який повертає нову
#множину, що містить всі елементи
#об'єднуваних множин
varCarSet1 = {"Dodge", "Ford", "Toyota"}
varCarSet2 = {"BMW", "Lincoln"}
varCarSet3 = varCarSet1.union(varCarSet2)
print(varCarSet1)
print(varCarSet2)
print(varCarSet3)
Метод intersection_update()
Метод intersection_update() у множинах Python оновлює множину, зберігаючи тільки ті елементи, які є спільними для всіх наданих ітерованих об’єктів. Це модифікує оригінальну множину. Приклад з відео:
#Метод intersection_update() збереже тільки ті
#елементи, які є в наявності в обох множинах.
varCarSet1 = {"Dodge", "Ford", "Toyota", "Lincoln", "BMW"}
varCarSet2 = {"Honda","Alfa Romeo","Chrysler","Dodge","Lincoln"}
print(varCarSet1)
print(varCarSet2)
varCarSet1.intersection_update(varCarSet2)
print(varCarSet1)
print(varCarSet2)
Метод intersection()
Метод intersection() у множинах Python повертає нову множину, що містить тільки ті елементи, які є спільними для всіх наданих ітерованих об’єктів. Це дозволяє знайти перетин множин або інших ітерованих об’єктів. Приклад з відео:
#Метод intersection() поверне нову множину, яка
#містить тільки ті елементи, які є в обох множинах.
varCarSet1 = {"Dodge", "Ford", "Toyota"}
varCarSet2 = {"Honda", "Dodge", "Ford", "Lincoln"}
varCarSet3 = varCarSet1.intersection(varCarSet2)
print(varCarSet1)
print(varCarSet2)
print(varCarSet3)
Метод symmetric_difference_update()
Метод symmetric_difference_update() у множинах Python оновлює множину, зберігаючи тільки ті елементи, які є унікальними для кожної з наданих множин (тобто, ті, що не зустрічаються в обох множинах). Це модифікує оригінальну множину, залишаючи тільки симетричну різницю. Приклад з відео:
#Метод symmetric_difference_update() збереже тільки
#ті елементи, які НЕ є спільними для обох множин
varCarSet1 = {"Dodge", "Ford", "Toyota"}
varCarSet2 = {"Dodge", "Honda", "Lincoln"}
print(varCarSet1)
print(varCarSet2)
varCarSet1.symmetric_difference_update(varCarSet2)
print(varCarSet1)
print(varCarSet2)
Метод symmetric_difference()
Метод symmetric_difference() у множинах Python повертає нову множину, яка містить тільки ті елементи, які є унікальними для кожної з наданих множин (тобто, елементи, які не зустрічаються в обох множинах). Це означає, що він обчислює симетричну різницю між множинами. Приклад з відео:
#Метод symmetric_difference() поверне нову множину, яка
#містить тільки ті елементи, які НЕ є спільними для обох множин.
varCarSet1 = {"Dodge", "Ford", "Toyota"}
varCarSet2 = {"Honda", "Dodge", "Lincoln"}
varCarSet3 = varCarSet1.symmetric_difference(varCarSet2)
print(varCarSet1)
print(varCarSet2)
print(varCarSet3)
Функція frozenset()
Функція frozenset() у Python створює новий об’єкт множини, яка є незмінною (іммутабельною). Це означає, що після створення frozenset не можна додавати, видаляти або змінювати його елементи. Приклад з відео:
#Функція frozenset() повертає немутабельний об'єкт frozenset
varCarSet = {"Dodge", "Ford", "Toyota"}
print(varCarSet)
varCarSet.add("Lincoln")
print(varCarSet)
frozenVarCarSet = frozenset(varCarSet)
print(frozenVarCarSet)
#frozenVarCarSet.pop("Ford")
#frozenVarCarSet.add("Chrysler")
В цьому відео поговоримо про:
00:17 Python Sets – множини
02:03 Duplicates Not Allowed – дуплікати не дозволені
04:22 Get the Length of a Set – Отримання довжини множини
05:29 Set Items – Data Types – Типи даних елементів у множинах
06:47 set() Constructor – Конструктор
08:06 Access Items – Доступ до елементів
09:57 Add Items – Додавання елементів
11:40 Add Sets – Додавання множин
13:52 Add Iterable – Додавання ітерабельного об’єкту
15:30 Remove Item – Видалення елементу
18:12 Discard Item – Видалення елементу за допомогою методу discard
20:47 Pop Item – Видалення елементу за допомогою методу pop
23:57 Clear set – Очищення множини
26:38 union() метод
30:53 intersection_update() метод
34:04 intersection() метод
36:21 symmetric_difference_update() метод
40:20 symmetric_difference() метод
42:29 frozenset() метод