Python Set je neusporiadaná kolekcia dátových typov, ktorá je iterovateľná, meniteľná a nemá žiadne duplicitné prvky. Poradie prvkov v množine nie je definované, hoci môže pozostávať z rôznych prvkov. Hlavnou výhodou použitia množiny na rozdiel od zoznamu je to, že má vysoko optimalizovanú metódu na kontrolu, či je v množine obsiahnutý konkrétny prvok. Tu uvidíme, čo je množina v Pythone a tiež uvidíme rôzne príklady množiny Python.
Vytvorenie sady v Pythone
Sady Pythonu je možné vytvoriť pomocou vstavaného set() funkciu s iterovateľným objektom alebo sekvenciou umiestnením sekvencie do zložených zátvoriek oddelených „čiarkou“.
Python3Poznámka: Sada Pythonu nemôže mať meniteľné prvky, ako je zoznam alebo slovník, pretože je nemenná.
# 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))>
Výkon
ako zakázať režim vývojára v systéme Android
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'}>
Časová zložitosť: O(n), kde n je dĺžka vstupného reťazca, zoznamu, n-tice alebo slovníka.
Pomocný priestor: O(n), kde n je dĺžka vstupného reťazca, zoznamu, n-tice alebo slovníka.
Sada Pythonu obsahuje iba jedinečné prvky, ale v čase vytvorenia sady je možné odovzdať aj viacero duplicitných hodnôt. Poradie prvkov v množine Pythonu nie je definované a je nemenné. Typ prvkov v množine nemusí byť rovnaký, množine môžu byť odovzdané aj rôzne zmiešané hodnoty dátových typov.
sú to speváciPython3
# 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)>
Výkon
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'}>
Vytvorenie sady Python inou metódou
V tomto príklade je množina vytvorená pomocou zápisu zložených zátvoriek {}, ktorý obsahuje číslo 1, 2 a 3. Štruktúra údajov množiny v Pythone alebo neusporiadaná množina v Pythone sú neusporiadané kolekcie jedinečných prvkov, vďaka čomu sú vhodné pre úlohy vyžadujúce jedinečnosť a nastaviť operácie v Pythone.
Python3 # Another Method to create sets in Python3 # Set containing numbers my_set = {1, 2, 3} print(my_set)>
Výkon
{1, 2, 3}>
Pridanie prvkov do sady v Pythone
Nižšie sú uvedené niektoré z prístupov, pomocou ktorých môžeme pridať prvky do sady v Pythone:
- Použitie metódy add().
- Použitie metódy update().
Použitie metódy add().
Prvky môžu byť pridané doSady v Pythonepomocou vstavaného pridať () funkciu. Pomocou metódy add() je možné do množiny naraz pridať iba jeden prvok, na pridanie viacerých prvkov naraz sa pomocou metódy add() používajú slučky.
Python3Poznámka: Zoznamy nie je možné pridať do množiny ako prvky, pretože zoznamy nie sú hašovateľné, zatiaľ čo n-tice je možné pridať, pretože n-tice sú nemenné, a teda hašovateľné.
# 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)>
Výkon
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}>
Použitie metódy update().
Na pridanie dvoch alebo viacerých prvkov sa používa metóda Update(). Metóda update() akceptuje ako svoje argumenty zoznamy, reťazce, n-tice, ako aj inú množinu hash Pythonu. Vo všetkých týchto prípadoch sa zabráni duplicitným prvkom.
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)>
Výkon
Set after Addition of elements using Update: {4, 5, (6, 7), 10, 11}>
Prístup k súprave v Pythone
K položkám sady nie je možné pristupovať odkazom na index, pretože sady nie sú usporiadané, položky nemajú index. Môžete však prechádzať položkami množiny hash Pythonu pomocou cyklu for alebo sa opýtať, či je v sade prítomná špecifikovaná hodnota, pomocou kľúčového slova in.
semená vs spóryPython3
# 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)>
Výkon
Initial set {'Geeks.', 'For', 'Geeks'} Elements of set: Geeks. For Geeks True>
Odstránenie prvkov zo sady v Pythone
Nižšie sú uvedené niektoré zo spôsobov, ktorými môžeme odstrániť prvky zo sady v Pythone:
- Pomocou metódy remove() alebo metódy discard()
- Použitie metódy pop().
- Použitie metódy clear().
Pomocou metódy remove() alebo metódy discard()
Prvky môžu byť odstránené zSady v Pythonepomocou vstavanej funkcie remove(), ale ak prvok v hashset Python neexistuje, vznikne chyba KeyError. Ak chcete odstrániť prvky zo sady bez KeyError, použite discard(), ak prvok v sade neexistuje, zostane nezmenený.
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)>
Výkon
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}>
Použitie metódy pop().
Funkciu Pop() je možné použiť aj na odstránenie a vrátenie prvku z množiny, ale odstráni len posledný prvok množiny.
Python3Poznámka: Ak je množina neusporiadaná, potom neexistuje spôsob, ako určiť, ktorý prvok sa zobrazí pomocou funkcie pop().
reťazec concat java
# 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)>
Výkon
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}>
Použitie metódy clear().
Na odstránenie všetkých prvkov zo sady sa používa funkcia 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)>
Výkon
Initial set: {1, 2, 3, 4, 5} Set after clearing all the elements: set()>
ZmrazenéSady v Pythone
Mrazené súpravy v Pythone sú nemenné objekty, ktoré podporujú iba metódy a operátory, ktoré vytvárajú výsledok bez ovplyvnenia zmrazenej množiny alebo množín, na ktoré sú aplikované. Zatiaľ čo prvky množiny možno kedykoľvek upraviť, prvky zamrznutej množiny zostanú po vytvorení rovnaké.
Ak nie sú zadané žiadne parametre, vráti prázdnu zmrazenú sadu.
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())>
Výkon
The FrozenSet is: frozenset({'F', 's', 'o', 'G', 'r', 'e', 'k'}) Empty FrozenSet: frozenset()>
Pretypovanie objektov do sád
V tomto príklade zoznamy , struny a slovníkov sú prevedené na množiny pomocou set() konštruktor, odstránenie duplikátov v zoznamoch a extrahovanie jedinečných prvkov v reťazcoch a kľúčoch slovníka.
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)>
Výkon
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}>
Príklad: Implementácia všetkých funkcií
V tomto príklade séria funkcií demonštruje bežné operácie nasady v Pythone. Patrí medzi ne vytváranie množiny, pridávanie a odstraňovanie prvkov, vyčistenie množiny, vykonávanie operácií zjednotenia množín, priesečníkov, rozdielov, symetrických rozdielov, podmnožín a nadmnožín.
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()>
Výkon
{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>
Výhody Setu v Pythone
- Jedinečné prvky : Sady môžu obsahovať iba jedinečné prvky, takže môžu byť užitočné na odstránenie duplikátov z kolekcie údajov.
- Rýchle testovanie členstva : Sady sú optimalizované na rýchle testovanie členstva, takže môžu byť užitočné pri určovaní, či je hodnota v kolekcii alebo nie.
- Operácie matematických množín: Množiny podporujú matematické operácie množín, ako je spojenie, prienik a rozdiel, ktoré môžu byť užitočné pri práci so súbormi údajov.
- Premenlivé : Množiny sú meniteľné, čo znamená, že môžete pridávať alebo odstraňovať prvky zo sady po jej vytvorení.
NevýhodySady v Pythone
- Neusporiadané : Množiny nie sú zoradené, čo znamená, že sa nemôžete spoľahnúť na poradie údajov v množine. To môže sťažiť prístup alebo spracovanie údajov v konkrétnom poradí.
- Obmedzená funkčnosť: Sady majú v porovnaní so zoznamami obmedzenú funkčnosť, pretože nepodporujú metódy ako append() alebo pop(). To môže sťažiť úpravu alebo manipuláciu s údajmi uloženými v súprave.
- Využitie pamäte: Množiny môžu spotrebovať viac pamäte ako zoznamy, najmä v prípade malých množín údajov. Je to preto, že každý prvok v množine vyžaduje dodatočnú pamäť na uloženie hodnoty hash.
- Menej často používané: Sady sa v Pythone používajú menej bežne ako zoznamy a slovníky, čo znamená, že na prácu s nimi môže byť k dispozícii menej zdrojov alebo knižníc. To môže sťažiť hľadanie riešení problémov alebo získanie pomoci s ladením.
Celkovo môžu byť sady užitočnou dátovou štruktúrou v Pythone, najmä na odstránenie duplikátov alebo na rýchle testovanie členstva. Ich nedostatok zoradenia a obmedzená funkčnosť však môžu spôsobiť, že sú menej univerzálne ako zoznamy alebo slovníky, takže pri rozhodovaní o tom, ktorú dátovú štruktúru použiť vo svojom programe Python, je dôležité starostlivo zvážiť výhody a nevýhody používania množín.
Nastavte metódy v Pythone
Funkcia | Popis |
---|---|
pridať () | Pridá prvok do množiny |
odstrániť () | Odstráni prvok zo sady. Ak prvok nie je prítomný v súprave, vyvolajte KeyError |
jasný() | Odstráni všetky prvky zo sady |
kopírovať () | Vráti plytkú kópiu sady |
pop() | Odstráni a vráti ľubovoľný prvok množiny. Zvýšte KeyError, ak je sada prázdna |
aktualizovať() | Aktualizuje sadu spojením seba a ostatných |
odbor() | Vráti spojenie množín v novej množine |
rozdiel() | Vráti rozdiel dvoch alebo viacerých množín ako novú množinu |
different_update() | Odstráni všetky prvky inej sady z tejto sady |
zahodiť() | Odstráni prvok z množiny, ak je členom. (Nerobte nič, ak prvok nie je nastavený) |
križovatka() | Vráti priesečník dvoch množín ako novú množinu |
intersection_update() | Aktualizuje množinu priesečníkom seba a inej |
isdisjoint() | Vráti hodnotu True, ak majú dve množiny nulový priesečník |
issubset() | Vráti hodnotu True, ak iná množina obsahuje túto množinu |
nadmnožina() | Vráti hodnotu True, ak táto množina obsahuje inú množinu |
symetrický_rozdiel() | Vráti symetrický rozdiel dvoch množín ako novú množinu |
symmetric_difference_update() | Aktualizuje množinu symetrickým rozdielom medzi sebou a inou |
Nedávne články o sadách Python
Nastaviť programy
- Program na akceptovanie reťazcov, ktoré obsahujú všetky samohlásky
- Program Python na nájdenie spoločných prvkov v troch zoznamoch pomocou sád
- Nájdite chýbajúce a ďalšie hodnoty v dvoch zoznamoch
- Páry kompletných strún v dvoch sadách
- Skontrolujte, či je daný reťazec Heterogram alebo nie
- Maximum a minimum v súprave
- Odstráňte položky zo súpravy
- Python Nastavte rozdiel na nájdenie strateného prvku z duplikovaného poľa
- Minimálny počet podmnožín s odlišnými prvkami pomocou počítadla
- Skontrolujte, či majú dva zoznamy spoločný aspoň jeden prvok
- Program na počítanie počtu samohlások pomocou množín v danom reťazci
- Rozdiel medzi dvoma zoznamami
- Python nastavený na kontrolu, či je reťazec panagram
- Operácie s množinou Pythonu (zjednotenie, priesečník, rozdiel a symetrický rozdiel)
- Zreťazený reťazec s neobvyklými znakmi v Pythone
- Pythonský slovník, sada a počítadlo na kontrolu, či sa frekvencie môžu zhodovať
- Použitie Set() v Python Pangram Checking
- Nastavte update() v Pythone na spojenie n polí
užitočné odkazy
- Výstup programov Python – Sady
- Nedávne články o sadách Python
- Otázky s viacerými možnosťami – Python
- Všetky články v kategórii Python