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”.
Python3Notatka: Zestaw Pythona nie może zawierać elementów modyfikowalnych, takich jak lista czy słownik, ponieważ jest niezmienny.
# 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 ochronyPython3
# 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().
Python3Notatka: 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ć.
# 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 100Python3
# 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.
Python3Notatka: 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
# 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