Тип множини (Set) в Python
Безліч Python — це структура даних, яка дозволяє працювати з колекціями унікальних елементів. Багато корисні для завдань, таких як видалення дублікатів зі списку, перевірка приналежності елемента, а також виконання операцій з множинами, таких як об'єднання і перетин. У Python безлічі змінюються і ітеруються, що робить їх універсальними і зручними в роботі. Давайте розглянемо основи множин у Python, а також основні методи множин, щоб допомогти вам якнайкраще використовувати цю структуру даних у ваших програмних проектах.
Що таке Безліч?
Безліч - це колекція унікальних елементів, дуже схожа на математичну безліч. Безліч є невпорядкованою та змінюваною колекцією різних елементів, укладених у фігурні дужки <>. Багато можуть містити будь-які хешовані елементи, такі як цілі числа, числа з плаваючою точкою, рядки і навіть інші множини.
Наприклад, ви можете створити безліч цілих чисел таким чином:
Або ви можете створити безліч рядків таким чином:
Ви можете виконувати різні операції з множинами, такі як додавання або видалення елементів, знаходження перетину або об'єднання множин або перевірка приналежності елемента до множини.
Ви можете використовувати операції та методи множин у Python для маніпуляції даними. Ось деякі з найчастіше використовуваних:
Операції з безліччю
- union() чи | : Повертає безліч, що містить всі елементи з обох множин (або інших об'єктів, що ітеруються), з видаленням дублікатів. Приклад: set1 =; set2 =; set3 = set1.union (set2); print(set3) виведе .
- intersection() або & : Повертає безліч, що містить лише елементи, спільні для обох множин. Приклад: set1 =; set2 =; set3 = set1.intersection(set2); print(set3) виведе .
- difference() або - : Повертає безліч, що містить елементи, які є в першому множині, але відсутні в другому. Приклад: set1 =; set2 =; set3 = set1.difference(set2); print(set3) виведе .
- symmetric_difference() або ^ : Повертає безліч, що містить елементи, які є або в одній з множин, або в іншій, але не в обох одночасно. Приклад: set1 =; set2 =; set3 = set1.symmetric_difference(set2); print(set3) виведе .
- issubset() : Повертає True, якщо всі елементи однієї множини містяться в іншій множині. Приклад: set1 =; set2 =; print(set2.issubset(set1)) виведе True .
- issuperset() : Повертає True, якщо множина містить всі елементи іншої множини. Приклад: set1 =; set2 =; print(set1.issuperset(set2)) виведе True .
Методи Безліч
- add() : Додає елемент до множини. Якщо елемент вже існує у безлічі, множина залишається без змін. Приклад: my_set =; my_set.add(4); print(my_set) виведе .
- remove() : Видаляє вказаний елемент з множини. Викликає KeyError, якщо елемента немає у безлічі. Приклад: my_set =; my_set.remove(2); print(my_set) виведе .
- discard() : Видаляє вказаний елемент із множини. Не викликає помилку, якщо елемента немає у безлічі. Приклад: my_set =; my_set.discard(2); print(my_set) виведе .
- pop() : Видаляє та повертає довільний елемент з множини. Викликає KeyError, якщо множина порожня. Приклад: my_set =; x = my_set.pop(); print(my_set, x) виведе , 1 .
- clear() : Видаляє всі елементи з множини. Приклад: my_set =; my_set.clear(); print(my_set) виведе set().
Далі ми розглянемо найчастіше використовувані методи докладніше.
Створення Множин у Python
У Python порожня множина може бути створена за допомогою функції set() . Ось приклад:
Щоб ініціалізувати множину зі значеннями, ви можете використовувати літерал множини. Ось приклад безлічі:
Як зазначено вище, ви можете створити множину в Python, використовуючи літерал множини або функцію set() .
Як Додати Елемент у Безліч у Python
У Python ви можете додати елемент до множини, використовуючи метод add() . Ось приклад додавання елемента до множини:
my_set = # create a set with initial values my_set.add(4) # add a new value to the set print(my_set) # output:
Примітка: об'єкти множини не мають методу append() , оскільки вони є невпорядкованими колекціями унікальних елементів.
Видалення Елементу з множини
У Python тип даних set є колекцією унікальних елементів. Метод remove використовується видалення конкретного елемента з множини.
Ось приклад того, як видалити елемент із множини:
# create a set my_set = # remove an element from the set my_set.remove(3) print(my_set) # Output:
Важливо, що якщо елемент, який потрібно видалити, відсутній у багатьох, метод remove викликає виняток KeyError . Якщо ви хочете уникнути цього, ви можете використовувати метод discard , який видаляє елемент з множини, якщо він присутній, і нічого не робить, якщо елемента немає в множині.
Ось приклад використання методу discard у Python:
# create a set my_set = # discard an element from the set my_set.discard(3) print(my_set) # Output: # :
Доступ до Елементів Безліч
Безліч є невпорядкованими колекціями унікальних елементів. Тому вони не підтримують індексацію цілими значеннями, як списки або кортежі.
Якщо вам потрібно отримати доступ до конкретного елемента у множині, ви можете використовувати ключове слово in для перевірки наявності елемента у множині Python, або ви можете використовувати цикл for для ітерації по елементах множини.
Ось кілька прикладів:
# Creating a set my_set = # Checking if an element exists in the set if 3 in my_set: print("3 is in the set") # Iterating over the elements of the set for element in my_set: print(element)
3 is in the set 1 2 3 4 5
Довжина Безліч у Python
У Python можна використовувати вбудовану функцію len() для отримання кількості елементів у безлічі.
Наприклад, розглянемо таку множину:
my_set = print(len(my_set)) # Output: 5
Сортування Безліч у Python
Безліч є невпорядкованими колекціями унікальних елементів, що означає, що порядок елементів не зберігається в безлічі, тому остаточний висновок не може бути відсортованим безліччю.
У Python можна відсортувати безліч, використовуючи вбудовану функцію sorted() або метод sort() . Таким чином, використовуючи цей метод, ми перетворюємо безліч на список.
Використання функції sorted() :
my_set = sorted_set = sorted(my_set) print(sorted_set) # Output: [1, 2, 3, 4, 5]
Коли sorted() застосовується до множини, вона повертає новий відсортований список, що містить усі елементи вихідної множини.
Використання методу sort() :
my_set = sorted_list = list(my_set) sorted_list.sort() sorted_set = set(sorted_list) print(sorted_set) # Output:
Примітка: метод sort() доступний лише для списків і не може бути використаний безпосередньо з безліччю. Тому вам потрібно спочатку перетворити безліч на список, потім використовувати метод sort() , а потім перетворити його назад на безліч.
В обох випадках результуюча множина буде відсортована за зростанням. Якщо ви хочете відсортувати безліч у порядку зменшення, ви можете використовувати аргумент reverse=True у функції sorted() або параметр reverse методу sort() .
my_set = sorted_set_desc = sorted(my_set, reverse=True) print(sorted_set_desc) # Output: [5, 4, 3, 2, 1] my_set = sorted_list_desc = list(my_set) sorted_list_desc.sort(reverse=True) sorted_list_desc) print(sorted_set_desc) # Output:
Метод update() для множини в Python
Метод update() безлічі дозволяє додавати до множини відразу кілька елементів.
Ось синтаксис використання методу update:
Аргумент iterable може бути будь-яким об'єктом, що ітерується, таким як список, кортеж, безліч або навіть рядок.
Ось приклад, що демонструє метод update:
>>> s1 = >>> s2 = >>> s1.update(s2) >>> print(s1)
Перетин Множин у Python
У Python перетин множин можна знайти за допомогою методу intersection() .
Давайте подивимося, як отримати перетин двох множин у Python:
set1 = set2 = set3 = intersection_set = set1.intersection(set2, set3) print(intersection_set) # Output:
Різниця Безліч у Python
Різницю множин у Python можна знайти, використовуючи оператор "-" або метод difference() .
set1 = set2 = # За допомогою "-" operator diff = set1 - set2 print(diff) # Output: # Using the `difference()` method diff = set1.difference(set2) print(diff) # Output:
Об'єднання Множин у Python
Об'єднання множин у Python можна отримати, використовуючи метод union() або оператор труби (|).
Ось приклад використання методу union():
set1 = set2 = set3 = union_set = set1.union(set2, set3) print(union_set) # Output:
В якості альтернативи ми можемо використовувати оператор труби ( | ) для досягнення того ж результату:
set1 = set2 = set3 = union_set = set1 | set3 print(union_set)
Метод pop()
Метод pop() у типі даних безліч (set) у Python видаляє та повертає довільний елемент з множини.
Ось приклад використання:
my_set = popped_element = my_set.pop() print(popped_element) # output: 1 print(my_set) # output: the remaining elements in the set, e.g.
№11 Безліч (set) / Уроки з Python для початківців
Безліч - невпорядкована і не індексована послідовність.
Створення множини:
thisset =
"set",
"list",
"tuple">
print(thisset)
Примітка. Вони не впорядковані, тому елементи відображатимуться у довільному порядку.
Безліч зберігає лише унікальні елементи:
thisset =
"set",
"list",
"tuple", "list">
print(thisset)
Доступ до елементів
Ви не можете отримати доступ до елементів множин за індексом, так як вони не впорядковані, а елементи без індексу.
Виведемо кожен елемент множини:
thisset =
"set",
"list",
"tuple">
for x in thisset:
print(x)
Перевіримо чи є "dict" цієї послідовності:
thisset =
"set",
"list",
"tuple">
print("dict"
in thisset)
Зміна елементів
Ви не можете міняти елементи набір, але можете додавати нові.
Додати елементи
Щоб додати один елемент до set використовуйте метод add() .
Щоб додати більше одного метод update() .
thisset =
"set",
"list",
"tuple"> thisset.add("dict")
print(thisset)
Додайте кілька елементів до thisset , використовуючи метод update() :
thisset =
"set",
"list",
"tuple"> thisset.update(["dict",
"class",
"int"])
print(thisset)
Отримайте довжину set
Щоб визначити, скільки елементів є в наборі, скористайтеся методом len() .
thisset =
"set",
"list",
"tuple">
print(len(thisset))
Видалення елементів
Щоб видалити елемент у безлічі, скористайтеся методом remove() або discard() .
Приберемо "list" використовуючи метод remove() :
thisset =
"set",
"list",
"tuple"> thisset.remove("list")
print(thisset)
Примітка: Якщо елемент, який потрібно видалити, не існує, remove() викликає помилку.
Прибрати "list" використовуючи метод discard() :
thisset =
"set",
"list",
"tuple"> thisset.discard("list")
print(thisset)
Примітка. Якщо елемент видалення не існує, discard() не буде викликати помилку.
Ви також можете використовувати метод pop() для видалення елемента, але він видаляє тільки останній елемент.Пам'ятайте, що set не впорядковані, тому ви не знатимете, який елемент видаляєте.
Значення методу pop (), що повертається, — це віддалений елемент.
thisset =
"set",
"list",
"tuple"> x = thisset.pop()
print(x)
print(thisset)
Метод clear() очистить безліч:
thisset =
"set",
"list",
"tuple"> thisset.clear()
print(thisset)
Ключове слово del повністю видалити безліч:
thisset =
"set",
"list",
"tuple">
del thisset print(thisset)
ця команда викличе помилку, так як thisset більше не існує
Конструктор set()
Є також можливість використовувати конструктор set() для створення безлічі.
thisset =
set(("set",
"list",
"tuple"))
# Використовуємо подвійні дужки
print(thisset)
Методи Set
Python має вбудовані методи, за допомогою яких ви можете працювати з sets.
| Метод | Значення |
|---|
| add(x) | Додає елементи x до set |
| clear() | Видаляє елементи з set |
| copy() | Повертає копію set |
| x.difference(y) | Повертає безліч елементів, які є в х, але немає в y |
| x.difference_update(y) | Видаляє елементи, які є в x та y |
| discard(x) | Видаляє цей елемент |
| x.intersection(y) | Повертає безліч, що є перетином x та y |
| intersection_update(y) | Видаляє елементи в багатьох, яких немає в інших заданих y |
| x.isdisjoint(y) | True, якщо x та y не мають спільних елементів |
| x.issubset(y) | True, якщо всі елементи з x є у y |
| issuperset() | True, якщо всі елементи з y є x |
| pop() | Видаляє та повертає останній елемент |
| remove() | Видаляє цей елемент |
| x.symmetric_difference(y) | Повертає безліч елементів, які не перетинаються в х та y |
| symmetric_difference_update() | Додає елементи, яких немає в іншій множині |
| union() | Об'єднує кілька множин |
| x.update(y, z) | Поєднує кілька множин, перезаписуючи x |