logo

Python-sets

Python Set is een ongeordende verzameling gegevenstypen die itereerbaar en veranderlijk is en geen dubbele elementen bevat. De volgorde van de elementen in een set is ongedefinieerd, hoewel deze uit verschillende elementen kan bestaan. Het grote voordeel van het gebruik van een set, in tegenstelling tot een lijst, is dat het een sterk geoptimaliseerde methode biedt om te controleren of een specifiek element in de set voorkomt. Hier zullen we zien wat een set is in Python en ook verschillende voorbeelden van set Python.

Een set maken in Python

Python-sets kunnen worden gemaakt met behulp van het ingebouwde set() functioneren met een itereerbaar object of een reeks door de reeks tussen accolades te plaatsen, gescheiden door een ‘komma’.



Opmerking: Een Python-set kan geen veranderlijke elementen bevatten, zoals een lijst of woordenboek, omdat deze onveranderlijk is.

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

Uitvoer

controleer op nul in Java
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'}>

Tijdcomplexiteit: O(n), waarbij n de lengte is van de invoertekenreeks, lijst, tupel of woordenboek.
Hulpruimte: O(n), waarbij n de lengte is van de invoertekenreeks, lijst, tupel of woordenboek.



Een Python-set bevat alleen unieke elementen, maar op het moment dat de set wordt gemaakt, kunnen er ook meerdere dubbele waarden worden doorgegeven. De volgorde van de elementen in een Python-set is ongedefinieerd en onveranderlijk. Het type elementen in een set hoeft niet hetzelfde te zijn; er kunnen ook verschillende gemengde gegevenstypewaarden aan de set worden doorgegeven.

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

Uitvoer
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'}>

Een Python-set maken met een andere methode

In dit voorbeeld wordt een set gemaakt met behulp van de accolades {}-notatie, die de getallen 1,2 en 3 bevat. De ingestelde datastructuur in Python of de ongeordende set in Python zijn ongeordende verzamelingen van unieke elementen, waardoor ze geschikt zijn voor taken die uniciteit en bewerkingen instellen in Python.

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

Uitvoer
{1, 2, 3}>

Elementen toevoegen aan een set in Python

Hieronder staan ​​enkele benaderingen waarmee we elementen aan een set in Python kunnen toevoegen:



  • Methode add() gebruiken
  • Met behulp van de update()-methode

Methode add() gebruiken

Er kunnen elementen aan deStelt in Python indoor gebruik te maken van de ingebouwde toevoegen() functie. Er kan slechts één element tegelijk aan de set worden toegevoegd met behulp van de add()-methode. Er worden lussen gebruikt om meerdere elementen tegelijk toe te voegen met behulp van de add()-methode.

Opmerking: Lijsten kunnen niet als elementen aan een set worden toegevoegd omdat Lijsten niet hashbaar zijn, terwijl Tuples wel kunnen worden toegevoegd omdat tuples onveranderlijk en dus Hashbaar zijn.

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

Uitvoer
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}>

Met behulp van de update()-methode

Voor de toevoeging van twee of meer elementen wordt de methode Update() gebruikt. De update() methode accepteert lijsten, strings, tupels en andere Python-hashsets als argumenten. In al deze gevallen worden dubbele elementen vermeden.

tekenreeks n java
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)>

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

Toegang krijgen tot een set in Python

Setitems zijn niet toegankelijk door naar een index te verwijzen, aangezien sets niet geordend zijn, hebben de items geen index. Maar je kunt de Python-hashset-items doorlopen met behulp van een for-lus, of vragen of een opgegeven waarde in een set aanwezig is, door het trefwoord in te gebruiken.

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

Uitvoer

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

Elementen uit de set verwijderen in Python

Hieronder staan ​​enkele manieren waarop we elementen uit de set in Python kunnen verwijderen:

  • Met behulp van de remove()-methode of de throw()-methode
  • Met behulp van de pop()-methode
  • Met behulp van de clear()-methode

Met behulp van de remove()-methode of de throw()-methode

Elementen kunnen worden verwijderd uit deStelt in Python indoor de ingebouwde functie remove() te gebruiken, maar er ontstaat een KeyError als het element niet bestaat in de hashset Python. Om elementen uit een set te verwijderen zonder KeyError, gebruik je throw(). Als het element niet bestaat in de set, blijft het ongewijzigd.

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

Uitvoer
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}>

Met behulp van de pop()-methode

De functie Pop() kan ook worden gebruikt om een ​​element uit de set te verwijderen en terug te sturen, maar verwijdert alleen het laatste element van de set.

Opmerking: Als de set ongeordend is, is er geen manier om te bepalen welk element wordt weergegeven met behulp van de functie pop().

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

Uitvoer
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}>

Met behulp van de clear()-methode

Om alle elementen uit de set te verwijderen, wordt de functie clear() gebruikt.

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

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

BevrorenStelt in Python in

Bevroren sets in Python zijn onveranderlijke objecten die alleen methoden en operatoren ondersteunen die een resultaat opleveren zonder de bevroren set of sets waarop ze worden toegepast te beïnvloeden. Hoewel elementen van een set op elk moment kunnen worden gewijzigd, blijven elementen van de bevroren set na het maken hetzelfde.

Als er geen parameters worden doorgegeven, retourneert het een lege frozenset.

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

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

Objecten in sets typen

In dit voorbeeld lijsten , snaren en woordenboeken worden omgezet in sets met behulp van de set() constructor, waardoor duplicaten in lijsten worden geëlimineerd en unieke elementen in tekenreeksen en woordenboeksleutels worden geëxtraheerd.

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

Uitvoer
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}>

Voorbeeld: Implementatie van alle functies

In dit voorbeeld demonstreert een reeks functies algemene bewerkingen opingesteld in Python. Deze omvatten het maken van een set, het toevoegen en verwijderen van elementen, het opschonen van de set, het uitvoeren van set-samenvoeging, kruising, verschil, symmetrisch verschil, subset en superset-bewerkingen.

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

Uitvoer
{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>

Voordelen van Set in Python

  • Unieke elementen : Sets kunnen alleen unieke elementen bevatten, dus ze kunnen handig zijn voor het verwijderen van duplicaten uit een verzameling gegevens.
  • Snelle lidmaatschapstesten : Sets zijn geoptimaliseerd voor snelle lidmaatschapstests, dus ze kunnen handig zijn om te bepalen of een waarde in een verzameling zit of niet.
  • Wiskundige setbewerkingen: Sets ondersteunen wiskundige verzamelingsbewerkingen zoals vereniging, snijpunt en verschil, wat handig kan zijn bij het werken met gegevenssets.
  • Veranderlijk : Sets zijn veranderlijk, wat betekent dat u elementen aan een set kunt toevoegen of eruit kunt verwijderen nadat deze is gemaakt.

Nadelen vanStelt in Python in

  • Ongeordend : Sets zijn ongeordend, wat betekent dat u niet kunt vertrouwen op de volgorde van de gegevens in de set. Dit kan het moeilijk maken om toegang te krijgen tot gegevens of deze in een specifieke volgorde te verwerken.
  • Beperkte functionaliteit: Sets hebben een beperkte functionaliteit in vergelijking met lijsten, omdat ze geen methoden als append() of pop() ondersteunen. Dit kan het moeilijker maken om gegevens die in een set zijn opgeslagen, te wijzigen of te manipuleren.
  • Geheugengebruik: Sets kunnen meer geheugen verbruiken dan lijsten, vooral voor kleine gegevenssets. Dit komt omdat elk element in een set extra geheugen nodig heeft om een ​​hashwaarde op te slaan.
  • Minder vaak gebruikt: Sets worden minder vaak gebruikt dan lijsten en woordenboeken in Python, wat betekent dat er mogelijk minder bronnen of bibliotheken beschikbaar zijn om ermee te werken. Dit kan het moeilijker maken om oplossingen voor problemen te vinden of hulp te krijgen bij het opsporen van fouten.

Over het algemeen kunnen sets een nuttige datastructuur zijn in Python, vooral voor het verwijderen van duplicaten of voor het snel testen van lidmaatschappen. Hun gebrek aan ordening en beperkte functionaliteit kunnen ze echter ook minder veelzijdig maken dan lijsten of woordenboeken. Het is dus belangrijk om zorgvuldig de voor- en nadelen van het gebruik van sets af te wegen bij het beslissen welke gegevensstructuur u in uw Python-programma wilt gebruiken.

Methoden instellen in Python

FunctieBeschrijving
toevoegen() Voegt een element toe aan een set
verwijderen() Verwijdert een element uit een set. Als het element niet aanwezig is in de set, genereert u een KeyError
duidelijk() Verwijdert alle elementen uit een set
kopiëren() Retourneert een ondiepe kopie van een set
knal() Verwijdert en retourneert een willekeurig set-element. Verhoog KeyError als de set leeg is
update() Werkt een set bij met de vereniging van zichzelf en anderen
unie() Retourneert de vereniging van sets in een nieuwe set
verschil() Retourneert het verschil tussen twee of meer sets als een nieuwe set
verschil_update() Verwijdert alle elementen van een andere set uit deze set
weggooien() Verwijdert een element uit de set als het lid is. (Doe niets als het element niet in de set zit)
kruispunt() Retourneert het snijpunt van twee sets als een nieuwe set
intersectie_update()Werkt de set bij met het snijpunt van zichzelf en een ander
isdisjunct() Retourneert True als twee sets een nul-snijpunt hebben
issubset() Retourneert True als een andere set deze set bevat
superset() Retourneert True als deze set een andere set bevat
symmetrisch_verschil() Retourneert het symmetrische verschil van twee sets als een nieuwe set
symmetrische_verschil_update() Werkt een set bij met het symmetrische verschil tussen zichzelf en een andere

Recente artikelen over Python-sets

Programma's instellen

  • Programma om de snaren te accepteren die alle klinkers bevatten
  • Python-programma om gemeenschappelijke elementen in drie lijsten te vinden met behulp van sets
  • Zoek ontbrekende en aanvullende waarden in twee lijsten
  • Paren complete snaren in twee sets
  • Controleer of een bepaalde string een Heterogram is of niet
  • Maximaal en minimaal in een set
  • Verwijder items uit de set
  • Python Stel het verschil in om verloren elementen uit een gedupliceerde array te vinden
  • Minimumaantal subsets met verschillende elementen met behulp van Counter
  • Controleer of twee lijsten ten minste één element gemeen hebben
  • Programma om het aantal klinkers te tellen met behulp van sets in een bepaalde string
  • Verschil tussen twee lijsten
  • Python is ingesteld om te controleren of de tekenreeks panagram is
  • Python-setbewerkingen (vereniging, snijpunt, verschil en symmetrisch verschil)
  • Aaneengeschakelde tekenreeks met ongebruikelijke tekens in Python
  • Python-woordenboek, set en counter om te controleren of frequenties hetzelfde kunnen worden
  • Set() gebruiken in Python Pangram-controle
  • Stel update() in Python in om een ​​unie van n arrays uit te voeren

handige links

  • Uitvoer van Python-programma's – Sets
  • Recente artikelen over Python-sets
  • Meerkeuzevragen – Python
  • Alle artikelen in Python Categorie