Набір Python — це невпорядкована колекція типів даних, яка повторюється, змінюється та не має повторюваних елементів. Порядок елементів у наборі не визначений, хоча він може складатися з різних елементів. Основна перевага використання набору, на відміну від списку, полягає в тому, що він має оптимізований метод для перевірки, чи міститься певний елемент у наборі. Тут ми побачимо, що таке набір у Python, а також побачимо різні приклади набору Python.
Створення набору в Python
Набори Python можна створювати за допомогою вбудованого встановити() функціонувати з ітерованим об’єктом або послідовністю, помістивши послідовність у фігурні дужки, розділивши їх «комою».
Python3Примітка: Набір Python не може мати змінних елементів, таких як список або словник, оскільки він незмінний.
# Creating a Set set1 = set() print('Initial blank Set: ') print(set1) # Creating a Set with the use of a String set1 = set('GeeksForGeeks') print('
Set with the use of String: ') print(set1) String = 'GeeksForGeeks' set1 = set(String) print('
Set with the use of an Object: ') print(set1) # Creating a Set with the use of a List set1 = set(['Geeks', 'For', 'Geeks']) print('
Set with the use of List: ') print(set1) # Creating a Set with the use of a tuple t = ('Geeks', 'for', 'Geeks') print('
Set with the use of Tuple: ') print(set(t)) # Creating a Set with the use of a dictionary d = {'Geeks': 1, 'for': 2, 'Geeks': 3} print('
Set with the use of Dictionary: ') print(set(d))>
Вихід
cout
Initial blank Set: set() Set with the use of String: {'e', 'G', 's', 'F', 'o', 'r', 'k'} Set with the use of an Object: {'e', 'G', 's', 'F', 'o', 'r', 'k'} Set with the use of List: {'For', 'Geeks'} Set with the use of Tuple: {'for', 'Geeks'} Set with the use of Dictionary: {'for', 'Geeks'}>
Часова складність: O(n), де n — довжина вхідного рядка, списку, кортежу або словника.
Допоміжні приміщення: O(n), де n — довжина вхідного рядка, списку, кортежу або словника.
Набір Python містить лише унікальні елементи, але під час створення набору також можна передати кілька повторюваних значень. Порядок елементів у наборі Python не визначений і не змінюється. Типи елементів у наборі не обов’язково повинні бути однаковими, різні змішані значення типів даних також можуть передаватися в набір.
шлях, встановлений у javaPython3
# Creating a Set with a List of Numbers # (Having duplicate values) set1 = set([1, 2, 4, 4, 3, 3, 3, 6, 5]) print('
Set with the use of Numbers: ') print(set1) # Creating a Set with a mixed type of values # (Having numbers and strings) set1 = set([1, 2, 'Geeks', 4, 'For', 6, 'Geeks']) print('
Set with the use of Mixed Values') print(set1)>
Вихід
Set with the use of Numbers: {1, 2, 3, 4, 5, 6} Set with the use of Mixed Values {1, 2, 4, 6, 'Geeks', 'For'}>
Створення набору Python іншим методом
У цьому прикладі набір створюється за допомогою нотації у фігурних дужках {}, що містить числа 1, 2 і 3. Структура даних набору в Python або невпорядкований набір у Python є невпорядкованими колекціями унікальних елементів, що робить їх придатними для завдань, що вимагають унікальності та набір операцій у Python.
Python3 # Another Method to create sets in Python3 # Set containing numbers my_set = {1, 2, 3} print(my_set)>
Вихід
{1, 2, 3}>
Додавання елементів до набору в Python
Нижче наведено деякі з підходів, за допомогою яких ми можемо додавати елементи до набору в Python:
- Використання методу add().
- Використання методу update().
Використання методу add().
Елементи можна додавати доНабори на Pythonза допомогою вбудованого додати() функція. За допомогою методу add() до набору можна додавати лише один елемент за один раз. Цикли використовуються для додавання кількох елементів одночасно за допомогою методу add().
Python3Примітка: Списки не можна додавати до набору як елементи, оскільки списки не можна хешувати, тоді як кортежі можна додавати, оскільки кортежі є незмінними і, отже, хешованими.
# Creating a Set set1 = set() print('Initial blank Set: ') print(set1) # Adding element and tuple to the Set set1.add(8) set1.add(9) set1.add((6, 7)) print('
Set after Addition of Three elements: ') print(set1) # Adding elements to the Set # using Iterator for i in range(1, 6): set1.add(i) print('
Set after Addition of elements from 1-5: ') print(set1)>
Вихід
Initial blank Set: set() Set after Addition of Three elements: {8, 9, (6, 7)} Set after Addition of elements from 1-5: {1, 2, 3, (6, 7), 4, 5, 8, 9}>
Використання методу update().
Для додавання двох або більше елементів використовується метод Update(). Метод update() приймає списки, рядки, кортежі, а також інші хеш-набори Python як свої аргументи. У всіх цих випадках повторюваних елементів уникають.
Python3 # Addition of elements to the Set # using Update function set1 = set([4, 5, (6, 7)]) set1.update([10, 11]) print('
Set after Addition of elements using Update: ') print(set1)>
Вихід
Set after Addition of elements using Update: {4, 5, (6, 7), 10, 11}>
Доступ до набору в Python
Не можна отримати доступ до елементів набору, посилаючись на індекс, оскільки набори не впорядковані, елементи не мають індексу. Але ви можете прокрутити елементи набору хешів Python за допомогою циклу for або запитати, чи присутнє вказане значення в наборі, використовуючи ключове слово in.
Python3 # Creating a set set1 = set(['Geeks', 'For', 'Geeks.']) print('
Initial set') print(set1) # Accessing element using # for loop print('
Elements of set: ') for i in set1: print(i, end=' ') # Checking the element # using in keyword print('
') print('Geeks' in set1)>
Вихід
Initial set {'Geeks.', 'For', 'Geeks'} Elements of set: Geeks. For Geeks True>
Видалення елементів із набору в Python
Нижче наведено кілька способів, за допомогою яких ми можемо видалити елементи з набору в Python:
- Використання методу remove() або методу discard().
- Використання методу pop().
- Використання методу clear().
Використання методу remove() або методу discard().
Елементи можна видалити зНабори на Pythonза допомогою вбудованої функції remove(), але виникає KeyError, якщо елемент не існує в хеш-сеті Python. Щоб видалити елементи з набору без KeyError, використовуйте discard(), якщо елемент не існує в наборі, він залишається незмінним.
дхармендра вікPython3
# Creating a Set set1 = set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) print('Initial Set: ') print(set1) # Removing elements from Set using Remove() method set1.remove(5) set1.remove(6) print('
Set after Removal of two elements: ') print(set1) # Removing elements from Set using Discard() method set1.discard(8) set1.discard(9) print('
Set after Discarding two elements: ') print(set1) # Removing elements from Set using iterator method for i in range(1, 5): set1.remove(i) print('
Set after Removing a range of elements: ') print(set1)>
Вихід
Initial Set: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} Set after Removal of two elements: {1, 2, 3, 4, 7, 8, 9, 10, 11, 12} Set after Discarding two elements: {1, 2, 3, 4, 7, 10, 11, 12} Set after Removing a range of elements: {7, 10, 11, 12}>
Використання методу pop().
Функцію Pop() також можна використовувати для видалення та повернення елемента з набору, але вона видаляє лише останній елемент набору.
Python3Примітка: Якщо набір є невпорядкованим, тоді неможливо визначити, який елемент витягується за допомогою функції pop().
# Python program to demonstrate # Deletion of elements in a Set # Creating a Set set1 = set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) print('Initial Set: ') print(set1) # Removing element from the # Set using the pop() method set1.pop() print('
Set after popping an element: ') print(set1)>
Вихід
Initial Set: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} Set after popping an element: {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}>
Використання методу clear().
Щоб видалити всі елементи з набору, використовується функція clear().
підрядок javascript trimPython3
#Creating a set set1 = set([1,2,3,4,5]) print('
Initial set: ') print(set1) # Removing all the elements from # Set using clear() method set1.clear() print('
Set after clearing all the elements: ') print(set1)>
Вихід
Initial set: {1, 2, 3, 4, 5} Set after clearing all the elements: set()>
ЗамороженіНабори на Python
Заморожені набори у Python — це незмінні об’єкти, які підтримують лише методи й оператори, що створюють результат, не впливаючи на заморожений набір або набори, до яких вони застосовуються. Хоча елементи набору можна змінити в будь-який час, елементи замороженого набору залишаються незмінними після створення.
Якщо параметри не передано, він повертає порожній заморожений набір.
Python3 # Python program to demonstrate # working of a FrozenSet # Creating a Set String = ('G', 'e', 'e', 'k', 's', 'F', 'o', 'r') Fset1 = frozenset(String) print('The FrozenSet is: ') print(Fset1) # To print Empty Frozen Set # No parameter is passed print('
Empty FrozenSet: ') print(frozenset())>
Вихід
The FrozenSet is: frozenset({'F', 's', 'o', 'G', 'r', 'e', 'k'}) Empty FrozenSet: frozenset()>
Приведення типів об’єктів у набори
У цьому прикладі списки , рядки і словники перетворюються на набори за допомогою встановити() конструктор, що усуває дублікати в списках і витягує унікальні елементи в рядках і ключах словника.
Python3 # Typecasting list into set my_list = [1, 2, 3, 3, 4, 5, 5, 6, 2] my_set = set(my_list) print('my_list as a set: ', my_set) # Typecasting string into set my_str = 'techcodeview.com' my_set1 = set(my_str) print('my_str as a set: ', my_set1) # Typecasting dictionary into set my_dict = {1: 'One', 2: 'Two', 3: 'Three'} my_set2 = set(my_dict) print('my_dict as a set: ', my_set2)>
Вихід
my_list as a set: {1, 2, 3, 4, 5, 6} my_str as a set: {'G', 'f', 'r', 'e', 'k', 'o', 's'} my_dict as a set: {1, 2, 3}>
Приклад: Реалізація всіх функцій
У цьому прикладі серія функцій демонструє загальні операції наднабори в Python. Це включає створення набору, додавання та видалення елементів, очищення набору, виконання операцій об’єднання, перетину, різниці, симетричної різниці, підмножини та надмножини.
Python3 def create_set(): my_set = {1, 2, 3, 4, 5} print(my_set) def add_element(): my_set = {1, 2, 3, 4, 5} my_set.add(6) print(my_set) def remove_element(): my_set = {1, 2, 3, 4, 5} my_set.remove(3) print(my_set) def clear_set(): my_set = {1, 2, 3, 4, 5} my_set.clear() print(my_set) def set_union(): set1 = {1, 2, 3} set2 = {4, 5, 6} my_set = set1.union(set2) print(my_set) def set_intersection(): set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} my_set = set1.intersection(set2) print(my_set) def set_difference(): set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} my_set = set1.difference(set2) print(my_set) def set_symmetric_difference(): set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} my_set = set1.symmetric_difference(set2) print(my_set) def set_subset(): set1 = {1, 2, 3, 4, 5} set2 = {2, 3, 4} subset = set2.issubset(set1) print(subset) def set_superset(): set1 = {1, 2, 3, 4, 5} set2 = {2, 3, 4} superset = set1.issuperset(set2) print(superset) if __name__ == '__main__': create_set() add_element() remove_element() clear_set() set_union() set_intersection() set_difference() set_symmetric_difference() set_subset() set_superset()>
Вихід
{1, 2, 3, 4, 5} {1, 2, 3, 4, 5, 6} {1, 2, 4, 5} set() {1, 2, 3, 4, 5, 6} {4, 5} {1, 2, 3} {1, 2, 3, 6, 7, 8} True True>
Переваги Set в Python
- Унікальні елементи : набори можуть містити лише унікальні елементи, тому вони можуть бути корисними для видалення дублікатів із колекції даних.
- Швидке тестування членства : набори оптимізовано для швидкого тестування членства, тому вони можуть бути корисними для визначення того, чи є значення в колекції чи ні.
- Операції з математичними множинами: Набори підтримують математичні операції з наборами, такі як об’єднання, перетин і різниця, що може бути корисним для роботи з наборами даних.
- Змінний : набори є змінними, що означає, що ви можете додавати або видаляти елементи з набору після його створення.
НедолікиНабори на Python
- Невпорядкований : Набори є невпорядкованими, що означає, що ви не можете покладатися на порядок даних у наборі. Це може ускладнити доступ або обробку даних у певному порядку.
- Обмежена функціональність: Набори мають обмежену функціональність порівняно зі списками, оскільки вони не підтримують такі методи, як append() або pop(). Це може ускладнити зміну або маніпулювання даними, що зберігаються в наборі.
- Використання пам'яті: Набори можуть споживати більше пам’яті, ніж списки, особливо для невеликих наборів даних. Це пояснюється тим, що кожному елементу в наборі потрібна додаткова пам’ять для зберігання хеш-значення.
- Рідше використовуються: Набори використовуються рідше, ніж списки та словники в Python, а це означає, що для роботи з ними може бути менше ресурсів або бібліотек. Це може ускладнити пошук рішень проблем або отримання допомоги з налагодження.
Загалом набори можуть бути корисною структурою даних у Python, особливо для видалення дублікатів або для швидкого тестування членства. Однак відсутність у них порядку та обмежена функціональність також можуть зробити їх менш універсальними, ніж списки чи словники, тому важливо ретельно розглянути переваги та недоліки використання наборів, вирішуючи, яку структуру даних використовувати у вашій програмі Python.
Набір методів у Python
функція | опис |
---|---|
додати() | Додає елемент до набору |
видалити() | Вилучає елемент із набору. Якщо елемент відсутній у наборі, викликайте KeyError |
очистити() | Видаляє всі елементи з набору |
копіювати() | Повертає поверхневу копію набору |
поп() | Вилучає та повертає довільний елемент набору. Викликати KeyError, якщо набір порожній |
оновлення() | Оновлює набір об'єднанням себе та інших |
союз() | Повертає об’єднання наборів у новий набір |
різниця() | Повертає різницю двох чи більше наборів як новий набір |
difference_update() | Видаляє всі елементи іншого набору з цього набору |
відкинути() | Вилучає елемент із набору, якщо він є членом. (Нічого не робити, якщо елемент не в наборі) |
перетин() | Повертає перетин двох наборів як новий набір |
intersection_update() | Оновлює набір перетином самого себе та іншого |
isdisjuint() | Повертає True, якщо два набори мають нульовий перетин |
issubset() | Повертає True, якщо інший набір містить цей набір |
надмножина() | Повертає True, якщо цей набір містить інший набір |
symmetric_difference() | Повертає симетричну різницю двох наборів як новий набір |
symmetric_difference_update() | Оновлює набір за допомогою симетричної різниці між собою та іншим |
Останні статті про набори Python
Набір програм
- Програма для прийому рядків, які містять усі голосні
- Програма Python для пошуку спільних елементів у трьох списках за допомогою наборів
- У двох списках знайдіть пропущені та додаткові значення
- Пари повних рядків у двох наборах
- Перевірте, чи є заданий рядок гетерограмою чи ні
- Максимум і мінімум в наборі
- Видалити елементи з набору
- Python Встановити різницю, щоб знайти втрачений елемент у дубльованому масиві
- Мінімальна кількість підмножин з різними елементами за допомогою лічильника
- Перевірте, чи два списки мають принаймні один спільний елемент
- Програма для підрахунку голосних за допомогою наборів у заданому рядку
- Різниця між двома списками
- Python перевіряє, чи рядок є панаграмою
- Операції множини Python (об’єднання, перетин, різниця та симетрична різниця)
- Конкатенований рядок із незвичайними символами в Python
- Словник Python, набір і лічильник, щоб перевірити, чи можуть частоти стати однаковими
- Використання Set() у Python Pangram Checking
- Встановіть update() у Python для об’єднання n масивів
корисні посилання
- Вивід програм на Python – Набори
- Останні статті про набори Python
- Запитання з вибором відповідей – Python
- Усі статті в категорії Python