Sets¶
Sets in Python sind eine ungeordnete Sammlung von Objekten, die in Situationen
verwendet werden, in denen die Zugehörigkeit und Einzigartigkeit zur Menge die
wichtigsten Informationen des Objekts sind. Der in-Operator läuft bei Sets
schneller als bei Listen:
set¶
1 >>> x = set([4, 2, 3, 2, 1])
2 >>> x
3 {1, 2, 3, 4}
4 >>> 1 in x
5 True
6 >>> 5 in x
7 False
8 >>> x.add(0)
9 >>> x
10 {0, 1, 2, 3, 4}
11 >>> x.remove(4)
12 >>> x
13 {0, 1, 2, 3}
14 >>> y = set([3, 4, 5])
15 >>> x | y
16 {0, 1, 2, 3, 4, 5}
17 >>> x & y
18 {3}
19 >>> x ^ y
20 {0, 1, 2, 4, 5}
21 >>> x.update(y)
22 >>> x
23 {0, 1, 2, 3, 4, 5}
- Zeile 1
Ihr könnt ein Set erstellen, indem ihr
setauf eine Sequenz anwendet, z.B. auf eine Liste.- Zeile 3
Wenn eine Sequenz zu einem Set gemacht wird, werden Duplikate entfernt.
- Zeilen 4–7
Das Schlüsselwort
inwird verwendet, um die Zugehörigkeit eines Objekts zu einer Menge zu prüfen.- Zeilen 8–13
Mit
addundremovekönnt ihr die Elemente insetändern.- Zeile 15
|wird verwendet, um die Vereinigung oder Kombination von zwei Mengen zu erhalten.- Zeile 17
&wird verwendet, um die Schnittmenge zu erhalten.- Zeile 19
^wird verwendet, um die symmetrische Differenz zu finden, d.h. Elemente, die in der einen oder der anderen Menge enthalten sind, aber nicht in beiden.
frozenset¶
Neben set gibt es noch frozenset, einen unveränderlichen Datentyp. Damit
können sie auch Mitglieder anderer Mengen sein:
1>>> x = set([4, 2, 3, 2, 1])
2>>> z = frozenset(x)
3>>> z
4frozenset({1, 2, 3, 4})
5>>> z.add(5)
6Traceback (most recent call last):
7 File "<stdin>", line 1, in <module>
8AttributeError: 'frozenset' object has no attribute 'add'
9>>> x.add(z)
10>>> x
11{1, 2, 3, 4, frozenset({1, 2, 3, 4})}
Zusammenfassung¶
Der Geschwindigkeitsvorteil hat jedoch auch ihren Preis: Sets halten die Elemente nicht in der richtigen Reihenfolge, während Listen und Tupel dies tun. Wenn die Reihenfolge für euch wichtig ist, solltet ihr eine Datenstruktur verwenden, die sich die Reihenfolge merkt.
Datentyp |
veränderlich |
geordnet |
indiziert |
Duplikate |
|---|---|---|---|---|
Sets |
✅ |
❌ |
❌ |
❌ |
Frozensets |
❌ |
❌ |
❌ |
❌ |
Checks¶
Wieviele Elemente hat ein Set, wenn es aus der folgenden Liste
[4, 2, 3, 2, 1]gebildet wird?