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

Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen

What happens when you create a set with duplicate values?
A. Duplicates are automatically removed
B. An error is raised
C. The set keeps all duplicates
D. Only the first occurrence is kept

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

Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen

What is the difference between remove() and discard() methods for sets?
A. remove() removes one element, discard() removes all
B. There is no difference
C. remove() raises an error if element doesn't exist, discard() does not
D. remove() is faster

set 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}
Quiz

Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen

What does intersection() return for sets?
A. All elements from all sets
B. Only elements that are common to all sets
C. Elements in the first set but not in others
D. Elements in either set but not both

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

Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen

What does symmetric_difference() return for two sets?
A. All elements from both sets
B. Only elements common to both sets
C. Elements in the first set but not in the second
D. Elements in either set, but not in both