So verwenden Sie Sets in Python

Blog

So verwenden Sie Sets in Python

Lernen Sie Python-Programmierung mit diesem Python-Tutorial für Anfänger!

Erfahren Sie, wie Sie Sets in Python verwenden

Ein Set ist ein ungeordneter Sammlungsdatentyp, der iterierbar und veränderbar ist und keine doppelten Elemente enthält. Die set-Klasse von Python repräsentiert den mathematischen Begriff einer Menge. Der große Vorteil der Verwendung einer Menge im Gegensatz zu einer Liste besteht darin, dass sie eine hochoptimierte Methode zur Überprüfung hat, ob ein bestimmtes Element in der Menge enthalten ist. Dies basiert auf einer Datenstruktur, die als Hash-Tabelle bekannt ist. Da Sets ungeordnet sind, können wir nicht über Indizes auf Elemente zugreifen, wie wir es in Listen tun.

# Python program to # demonstrate sets # Same as {'a', 'b', 'c'} myset = set(['a', 'b', 'c']) print(myset) # Adding element to the set myset.add('d') print(myset)

Ausgabe:

Anleitung zum msrm WLAN-Extender
{'c', 'b', 'a'} {'d', 'c', 'b', 'a'}

Gefrorene Sets

Gefrorene Sets in Python sind unveränderliche Objekte, die nur Methoden und Operatoren unterstützen, die ein Ergebnis erzeugen, ohne die eingefrorenen Mengen oder Mengen zu beeinflussen, auf die sie angewendet werden. Während Elemente eines Sets jederzeit geändert werden können, bleiben Elemente des eingefrorenen Sets nach der Erstellung gleich.
Wenn keine Parameter übergeben werden, wird ein leeres Frozenset zurückgegeben.

# Python program to demonstrate differences # between normal and frozen set # Same as {'a', 'b','c'} normal_set = set(['a', 'b','c']) print('Normal Set') print(normal_set) # A frozen set frozen_set = frozenset(['e', 'f', 'g']) print(' Frozen Set') print(frozen_set) # Uncommenting below line would cause error as # we are trying to add element to a frozen set # frozen_set.add('h')

Ausgabe:

Normal Set set(['a', 'c', 'b']) Frozen Set frozenset(['e', 'g', 'f'])

Interne Arbeitsweise von Set

Dies basiert auf einer Datenstruktur, die als a . bekannt ist Hash-tabelle .
Wenn mehrere Werte an derselben Indexposition vorhanden sind, wird der Wert an diese Indexposition angehängt, um eine verknüpfte Liste zu bilden. In Python-Sets werden mithilfe von Dictionary mit Dummy-Variablen implementiert, wobei der Schlüssel die Member-Sets mit größeren Optimierungen der Zeitkomplexität ist.

Set-Implementierung:-

Sets mit zahlreichen Operationen auf einer einzigen HashTable:-

Methoden für Sätze

Elemente hinzufügen

Das Einfügen in set erfolgt über die Funktion set.add(), wobei ein entsprechender Datensatzwert zum Speichern in der Hash-Tabelle erstellt wird. Genauso wie nach einem Element zu suchen, d. h. im Durchschnitt O(1). Im schlimmsten Fall kann es jedoch zu O(n) werden.

# A Python program to # demonstrate adding elements # in a set # Creating a Set people = {'Jay', 'Idrish', 'Archi'} print('People:', end = ' ') print(people) # This will add Daxit # in the set people.add('Daxit') # Adding elements to the # set using iterator for i in range(1, 6): people.add(i) print(' Set after adding element:', end = ' ') print(people)

Ausgabe:

People: {'Idrish', 'Archi', 'Jay'} Set after adding element: {1, 2, 3, 4, 5, 'Idrish', 'Archi', 'Jay', 'Daxit'}

Union

Zwei Mengen können mit der Funktion union() oder | . zusammengeführt werden Operator. Auf beide Hash-Tabellenwerte wird zugegriffen und sie werden mit einer Zusammenführungsoperation durchlaufen, um die Elemente zu kombinieren, während gleichzeitig Duplikate entfernt werden. Die Zeitkomplexität davon ist O(len(s1) + len(s2)), wobei s1 und s2 zwei Mengen sind, deren Vereinigung durchgeführt werden muss.

Punktnotation vs. Klammernotation
# Python Program to # demonstrate union of # two sets people = {'Jay', 'Idrish', 'Archil'} vampires = {'Karan', 'Arjun'} dracula = {'Deepanshu', 'Raju'} # Union using union() # function population = people.union(vampires) print('Union using union() function') print(population) # Union using '|' # operator population = people|dracula print(' Union using '|' operator') print(population)

Ausgabe:

Union using union() function {'Karan', 'Idrish', 'Jay', 'Arjun', 'Archil'} Union using '|' operator {'Deepanshu', 'Idrish', 'Jay', 'Raju', 'Archil'}

Überschneidung

Dies kann über den Operator interface() oder & erfolgen. Gemeinsame Elemente sind ausgewählt. Sie ähneln der Iteration über die Hash-Listen und der Kombination derselben Werte in beiden Tabellen. Die Zeitkomplexität davon ist O(min(len(s1), len(s2)) wobei s1 und s2 zwei Mengen sind, deren Vereinigung durchgeführt werden muss.

# Python program to # demonstrate intersection # of two sets set1 = set() set2 = set() for i in range(5): set1.add(i) for i in range(3,9): set2.add(i) # Intersection using # intersection() function set3 = set1.intersection(set2) print('Intersection using intersection() function') print(set3) # Intersection using # '&' operator set3 = set1 & set2 print(' Intersection using '&' operator') print(set3)

Ausgabe:

Intersection using intersection() function {3, 4} Intersection using '&' operator {3, 4}

Unterschied

Um Unterschiede zwischen den Sätzen zu finden. Ähnlich, um den Unterschied in der verknüpften Liste zu finden. Dies geschieht über den Operator different() oder –. Die Zeitkomplexität des Findens der Differenz s1 – s2 ist O(len(s1))

ist cartesi eine gute investition
# Python program to # demonstrate difference # of two sets set1 = set() set2 = set() for i in range(5): set1.add(i) for i in range(3,9): set2.add(i) # Difference of two sets # using difference() function set3 = set1.difference(set2) print(' Difference of two sets using difference() function') print(set3) # Difference of two sets # using '-' operator set3 = set1 - set2 print(' Difference of two sets using '-' operator') print(set3)

Ausgabe:

Difference of two sets using difference() function {0, 1, 2} Difference of two sets using '-' operator {0, 1, 2}

Clearing-Sets

|_+_| -Methode leert den gesamten Satz.

Clear()

Ausgabe:

# Python program to # demonstrate clearing # of set set1 = {1,2,3,4,5,6} print('Initial set') print(set1) # This method will remove # all the elements of the set set1.clear() print(' Set after using clear() function') print(set1)

Es gibt jedoch zwei große Fallstricke in Python-Sets:

Wo kann ich Amperemünzen kaufen?
  1. Das Set verwaltet keine Elemente in einer bestimmten Reihenfolge.
  2. Einem Python-Set können nur Instanzen unveränderlicher Typen hinzugefügt werden.

Zeitkomplexität von Sets

Operatoren für Mengen

Mengen und eingefrorene Mengen unterstützen die folgenden Operatoren:

Codeausschnitt zur Veranschaulichung aller Set-Operationen in Python

Initial set {1, 2, 3, 4, 5, 6} Set after using clear() function set()

Ausgabe:

# Python program to demonstrate working# of # Set in Python # Creating two sets set1 = set() set2 = set() # Adding elements to set1 for i in range(1, 6): set1.add(i) # Adding elements to set2 for i in range(3, 8): set2.add(i) print('Set1 = ', set1) print('Set2 = ', set2) print(' ') # Union of set1 and set2 set3 = set1 | set2# set1.union(set2) print('Union of Set1 & Set2: Set3 = ', set3) # Intersection of set1 and set2 set4 = set1 & set2# set1.intersection(set2) print('Intersection of Set1 & Set2: Set4 = ', set4) print(' ') # Checking relation between set3 and set4 if set3 > set4: # set3.issuperset(set4) print('Set3 is superset of Set4') elif set3