Python Mengen
Python ist mit mehreren integrierten Datentypen ausgestattet, die uns bei der Organisation unserer Daten helfen. Zu diesen Strukturen gehören Listen, Dictionaries, Tupel und Mengen (Sets).
Aus der Python 3 Dokumentation
Eine Menge ist eine ungeordnete Sammlung ohne doppelte Elemente. Zu den grundlegenden Verwendungszwecken gehören die Mitgliedschaftsprüfung und das Eliminieren doppelter Einträge.
Lesen Sie Python Sets: What, Why and How für eine tiefere Referenz.
Initialisieren einer Menge
Es gibt zwei Möglichkeiten, Mengen zu erstellen: mit geschweiften Klammern {} und der integrierten Funktion set().
Leere Mengen
Stellen Sie beim Erstellen einer Menge sicher, dass Sie nicht leere geschweifte Klammern {} verwenden, da Sie sonst stattdessen ein leeres Dictionary erhalten.
# Create set using curly braces or set() function
s = {1, 2, 3} # Using curly braces
s = set([1, 2, 3]) # Using set() constructor
# Warning: empty {} creates a dictionary, not a set
s = {} # this will create a dictionary instead of a set
type(s) # Returns <class 'dict'>
<class 'dict'>
Ungeordnete Sammlungen eindeutiger Elemente
Eine Menge entfernt automatisch alle doppelten Werte.
# Sets automatically remove duplicates
s = {1, 2, 3, 2, 3, 4} # Duplicates are removed
s # Returns {1, 2, 3, 4}
{1, 2, 3, 4}
Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen
Und als ungeordnete Datenstruktur können sie nicht indiziert werden.
s = {1, 2, 3}
s[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'set' object does not support indexing
set add und update
Mit der Methode add() können wir ein einzelnes Element zur Menge hinzufügen.
# add() method: add a single element to the set
s = {1, 2, 3}
s.add(4) # Add element 4
s
{1, 2, 3, 4}
Und mit update() mehrere:
# update() method: add multiple elements from an iterable
s = {1, 2, 3}
s.update([2, 3, 4, 5, 6]) # Add multiple elements (duplicates ignored)
s
{1, 2, 3, 4, 5, 6}
set remove und discard
Beide Methoden entfernen ein Element aus der Menge, aber remove() löst einen key error aus, wenn der Wert nicht existiert.
# remove() method: remove element, raises KeyError if not found
s = {1, 2, 3}
s.remove(3) # Remove element 3
s
{1, 2}
s.remove(3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 3
discard() löst keine Fehler aus.
# discard() method: remove element, no error if not found
s = {1, 2, 3}
s.discard(3) # Remove element 3 (safe, no error if missing)
s
{1, 2}
s.discard(3)
Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen
remove() and discard() methods for sets?remove() removes one element, discard() removes allremove() raises an error if element doesn't exist, discard() does notremove() is fasterset union
union() oder | erstellen eine neue Menge mit allen Elementen aus den angegebenen Mengen.
# union(): combine all elements from multiple sets (no duplicates)
s1 = {1, 2, 3}
s2 = {3, 4, 5}
s1.union(s2) # or 's1 | s2' - returns {1, 2, 3, 4, 5}
{1, 2, 3, 4, 5}
set intersection
intersection() oder & geben eine Menge zurück, die nur die Elemente enthält, die allen gemeinsam sind.
# intersection(): return elements common to all sets
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = {3, 4, 5}
s1.intersection(s2, s3) # or 's1 & s2 & s3' - returns {3}
{3}
Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen
intersection() return for sets?set difference
difference() oder - geben nur die Elemente zurück, die für die erste Menge (die aufgerufene Menge) eindeutig sind.
# difference(): return elements in first set but not in others
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s1.difference(s2) # or 's1 - s2' - returns {1}
{1}
s2.difference(s1) # or 's2 - s1'
{4}
set symmetric_difference
symmetric_difference() oder ^ geben alle Elemente zurück, die zwischen ihnen nicht gemeinsam sind.
# symmetric_difference(): return elements in either set, but not both
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s1.symmetric_difference(s2) # or 's1 ^ s2' - returns {1, 4}
{1, 4}
Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen
symmetric_difference() return for two sets?