logo

Zestawy Pythona

Zestaw języka Python to nieuporządkowany zbiór typów danych, który można iterować, modyfikować i nie zawiera duplikatów elementów. Kolejność elementów w zbiorze jest nieokreślona, ​​choć może składać się z różnych elementów. Główną zaletą korzystania ze zbioru w porównaniu z listą jest to, że posiada on wysoce zoptymalizowaną metodę sprawdzania, czy określony element znajduje się w zestawie. Tutaj zobaczymy, czym jest set w Pythonie, a także zobaczymy różne przykłady set Pythona.

Tworzenie zestawu w Pythonie

Zestawy Pythona można tworzyć za pomocą wbudowanego modułu ustawić() funkcję z iterowalnym obiektem lub sekwencją, umieszczając sekwencję w nawiasach klamrowych i oddzielając ją „przecinkiem”.



Notatka: Zestaw Pythona nie może zawierać elementów modyfikowalnych, takich jak lista czy słownik, ponieważ jest niezmienny.

Python3
# 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))>

Wyjście

stany w usa
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'}>

Złożoność czasowa: O(n), gdzie n jest długością ciągu wejściowego, listy, krotki lub słownika.
Przestrzeń pomocnicza: O(n), gdzie n jest długością ciągu wejściowego, listy, krotki lub słownika.



Zestaw Pythona zawiera tylko unikalne elementy, ale w momencie tworzenia zestawu można przekazać wiele zduplikowanych wartości. Kolejność elementów w zestawie Pythona jest niezdefiniowana i nie można jej zmienić. Typ elementów w zestawie nie musi być taki sam, do zestawu można również przekazać różne, pomieszane wartości typów danych.

ogólny błąd ochrony
Python3
# 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)>

Wyjście
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'}>

Tworzenie zestawu Pythona za pomocą innej metody

W tym przykładzie zbiór tworzony jest za pomocą nawiasów klamrowych w notacji {}, zawierającej cyfry 1,2 i 3. Struktura danych set w Pythonie lub zbiór nieuporządkowany w Pythonie to nieuporządkowane zbiory unikalnych elementów, dzięki czemu nadają się do zadań wymagających unikalności i ustawianie operacji w Pythonie.

Python3
# Another Method to create sets in Python3 # Set containing numbers my_set = {1, 2, 3} print(my_set)>

Wyjście
{1, 2, 3}>

Dodawanie elementów do zestawu w Pythonie

Poniżej znajdują się niektóre podejścia, dzięki którym możemy dodawać elementy do zestawu w Pythonie:



  • Korzystanie z metody add().
  • Korzystanie z metody update().

Korzystanie z metody add().

Elementy można dodawać doZestawy w Pythonieza pomocą wbudowanego dodać() funkcjonować. Do zbioru można dodać tylko jeden element za pomocą metody add(), pętle służą do dodawania wielu elementów jednocześnie za pomocą metody add().

Notatka: List nie można dodawać do zestawu jako elementy, ponieważ list nie można hashować, natomiast krotki można dodawać, ponieważ krotki są niezmienne, a zatem można je hashować.

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)>

Wyjście
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}>

Korzystanie z metody update().

W celu dodania dwóch lub więcej elementów używana jest metoda Update(). Metoda update() akceptuje jako argumenty listy, ciągi znaków, krotki, a także inne zestawy skrótów Pythona. We wszystkich tych przypadkach unika się duplikacji elementów.

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)>

Wyjście
Set after Addition of elements using Update: {4, 5, (6, 7), 10, 11}>

Dostęp do zestawu w Pythonie

Do elementów zestawu nie można uzyskać dostępu poprzez odwoływanie się do indeksu, ponieważ zestawy są nieuporządkowane, elementy nie mają indeksu. Można jednak przeglądać elementy zestawu skrótów Pythona za pomocą pętli for lub pytać, czy w zestawie znajduje się określona wartość, używając słowa kluczowego in.

10 ze 100
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)>

Wyjście

Initial set {'Geeks.', 'For', 'Geeks'}  Elements of set:  Geeks. For Geeks   True>

Usuwanie elementów ze zbioru w Pythonie

Poniżej znajduje się kilka sposobów usuwania elementów ze zbioru w Pythonie:

  • Użycie metody usuwania() lub metody odrzucania().
  • Korzystanie z metody pop().
  • Korzystanie z metody clear().

Użycie metody usuwania() lub metody odrzucania().

Elementy można usunąć zZestawy w Pythonieużywając wbudowanej funkcji usuwania(), ale pojawia się KeyError, jeśli element nie istnieje w zestawie skrótów Pythona. Aby usunąć elementy ze zbioru bez KeyError, użyj metody odrzucania(), jeśli elementu nie ma w zestawie, pozostaje niezmieniony.

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)>

Wyjście
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}>

Korzystanie z metody pop().

Funkcji Pop() można również użyć do usunięcia i zwrócenia elementu ze zbioru, ale usuwa ona tylko ostatni element zbioru.

Notatka: Jeśli zbiór jest nieuporządkowany, nie ma możliwości określenia, który element zostanie wyrzucony, za pomocą funkcji pop().

dziedziczenie javy
Python3
# 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)>

Wyjście
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}>

Korzystanie z metody clear().

Aby usunąć wszystkie elementy ze zbioru, używana jest funkcja clear().

Python3
#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)>

Wyjście
 Initial set: {1, 2, 3, 4, 5} Set after clearing all the elements: set()>

MrożonyZestawy w Pythonie

Zestawy mrożone w Pythonie są niezmienne obiekty, które obsługują tylko metody i operatory, które dają wynik bez wpływu na zamrożony zbiór lub zestawy, do których są stosowane. Chociaż elementy zestawu można modyfikować w dowolnym momencie, elementy zamrożonego zestawu pozostają takie same po utworzeniu.

Jeśli nie zostaną przekazane żadne parametry, zwraca pusty zestaw zamrożony.

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())>

Wyjście
The FrozenSet is: frozenset({'F', 's', 'o', 'G', 'r', 'e', 'k'}) Empty FrozenSet: frozenset()>

Typowanie obiektów w zestawy

W tym przykładzie listy , sznurki i słowniki są konwertowane na zestawy za pomocą ustawić() konstruktor, eliminując duplikaty na listach i wyodrębniając unikalne elementy w ciągach znaków i kluczach słownika.

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)>

Wyjście
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}>

Przykład: Implementacja wszystkich funkcji

W tym przykładzie szereg funkcji demonstruje typowe operacje nazestawy w Pythonie. Obejmują one tworzenie zbioru, dodawanie i usuwanie elementów, czyszczenie zbioru, wykonywanie operacji na zbiorach, przecięciach, różnicach, różnicach symetrycznych, podzbiorach i nadzbiorach.

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()>

Wyjście
{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>

Zalety zestawu w Pythonie

  • Unikalne elementy : Zestawy mogą zawierać tylko unikalne elementy, więc mogą być przydatne do usuwania duplikatów ze zbioru danych.
  • Szybkie testowanie członkostwa : Zbiory są zoptymalizowane pod kątem szybkiego testowania członkostwa, więc mogą być przydatne do określenia, czy wartość znajduje się w kolekcji, czy nie.
  • Operacje na zbiorach matematycznych: Zbiory obsługują matematyczne operacje na zbiorach, takie jak suma, przecięcie i różnica, które mogą być przydatne podczas pracy ze zbiorami danych.
  • Zmienny : Zestawy są modyfikowalne, co oznacza, że ​​możesz dodawać lub usuwać elementy z zestawu po jego utworzeniu.

WadyZestawy w Pythonie

  • Niezamówiony : Zbiory są nieuporządkowane, co oznacza, że ​​nie można polegać na kolejności danych w zestawie. Może to utrudnić dostęp do danych lub ich przetwarzanie w określonej kolejności.
  • Ograniczona funkcjonalność: Zestawy mają ograniczoną funkcjonalność w porównaniu do list, ponieważ nie obsługują metod takich jak append() czy pop(). Może to utrudnić modyfikowanie danych przechowywanych w zestawie lub manipulowanie nimi.
  • Zużycie pamięci: Zestawy mogą zużywać więcej pamięci niż listy, szczególnie w przypadku małych zestawów danych. Dzieje się tak, ponieważ każdy element w zestawie wymaga dodatkowej pamięci do przechowywania wartości skrótu.
  • Rzadziej używane: Zestawy są w Pythonie rzadziej używane niż listy i słowniki, co oznacza, że ​​może być dostępnych mniej zasobów lub bibliotek do pracy z nimi. Może to utrudnić znalezienie rozwiązań problemów lub uzyskanie pomocy przy debugowaniu.

Ogólnie rzecz biorąc, zestawy mogą być użyteczną strukturą danych w Pythonie, szczególnie do usuwania duplikatów lub do szybkiego testowania członkostwa. Jednak brak uporządkowania i ograniczona funkcjonalność mogą również sprawić, że będą mniej wszechstronne niż listy czy słowniki, dlatego ważne jest, aby dokładnie rozważyć zalety i wady używania zbiorów przy podejmowaniu decyzji, której struktury danych użyć w programie w języku Python.

Ustaw metody w Pythonie

FunkcjonowaćOpis
dodać() Dodaje element do zestawu
usunąć() Usuwa element ze zbioru. Jeśli elementu nie ma w zestawie, zgłoś błąd KeyError
jasne() Usuwa wszystkie elementy z zestawu
Kopiuj() Zwraca płytką kopię zestawu
Muzyka pop() Usuwa i zwraca dowolny element zestawu. Podnieś KeyError, jeśli zestaw jest pusty
aktualizacja() Aktualizuje zestaw poprzez połączenie siebie i innych
unia() Zwraca sumę zbiorów w nowym zestawie
różnica() Zwraca różnicę dwóch lub więcej zestawów jako nowy zestaw
różnica_aktualizacja() Usuwa wszystkie elementy innego zestawu z tego zestawu
wyrzucać() Usuwa element ze zbioru, jeśli jest członkiem. (Nie rób nic, jeśli element nie jest w zestawie)
skrzyżowanie() Zwraca część przecięcia dwóch zbiorów jako nowy zbiór
skrzyżowanie_update()Aktualizuje zestaw za pomocą przecięcia samego siebie i innego
jest rozłączny() Zwraca wartość True, jeśli dwa zbiory mają przecięcie zerowe
ispodzbiór() Zwraca True, jeśli inny zestaw zawiera ten zestaw
nadzbiór() Zwraca True, jeśli ten zestaw zawiera inny zestaw
różnica_symetryczna() Zwraca różnicę symetryczną dwóch zbiorów jako nowy zbiór
symmetric_difference_update() Aktualizuje zestaw o symetryczną różnicę między sobą a innym

Najnowsze artykuły na temat zestawów Pythona

Ustaw programy

  • Program akceptowający ciągi zawierające wszystkie samogłoski
  • Program w języku Python do wyszukiwania wspólnych elementów na trzech listach przy użyciu zestawów
  • Znajdź brakujące i dodatkowe wartości na dwóch listach
  • Pary kompletnych strun w dwóch zestawach
  • Sprawdź, czy dany ciąg jest heterogramem, czy nie
  • Maksimum i minimum w zestawie
  • Usuń elementy z zestawu
  • Python Ustaw różnicę, aby znaleźć zagubiony element ze zduplikowanej tablicy
  • Minimalna liczba podzbiorów z odrębnymi elementami przy użyciu licznika
  • Sprawdź, czy dwie listy mają co najmniej jeden wspólny element
  • Program zliczający liczbę samogłosek na podstawie zbiorów w podanym ciągu znaków
  • Różnica między dwiema listami
  • Python ustawiony na sprawdzanie, czy ciąg znaków jest panagramem
  • Operacje na zbiorach Pythona (unia, przecięcie, różnica i różnica symetryczna)
  • Połączony ciąg znaków z nietypowymi znakami w Pythonie
  • Słownik Pythona, ustaw i licznik, aby sprawdzić, czy częstotliwości mogą stać się takie same
  • Używanie Set() w sprawdzaniu Pangramu w Pythonie
  • Ustaw update() w Pythonie, aby wykonać sumę n tablic

Przydatne linki

  • Dane wyjściowe programów w języku Python – zestawy
  • Najnowsze artykuły na temat zestawów Pythona
  • Pytania wielokrotnego wyboru – Python
  • Wszystkie artykuły w kategorii Python