Sets¶
Kennzeichen sind geschweifte Klammern
jedes Objekt, jeder Wert kann nur einmal enthalten sein
Mengenoperationen sind darauf anwendbar
Ein leeres Set¶
zahlen = set()
print(zahlen)
set()
zahlen2 = set([1, 2, 1, 2, 3, 5])
print(zahlen2)
{1, 2, 3, 5}
Zeichenketten als Set¶
string_set = set("Hallo Du Pappnase!")
print(string_set)
{'o', 'n', 'e', 'u', 'l', 'p', 'P', 'a', 's', ' ', 'D', '!', 'H'}
set_1 = {1, 2, 3, 4}
set_2 = {3, 4, 5, 6}
print(7 in set_2)
print(1 in set_1)
False
True
for number in set_1:
print(number)
1
2
3
4
Mengenoperatoren¶
print(set_1.union(set_2))
print(set_1 | set_2)
{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5, 6}
print(set_1.intersection(set_2))
{3, 4}
print(set_1.difference(set_2))
print(set_1 - set_2)
{1, 2}
{1, 2}
print(set_1.symmetric_difference(set_2))
print(set_1 ^ set_2)
{1, 2, 5, 6}
{1, 2, 5, 6}
set_1 = {1, 2}
set_2 = {1, 2, 3}
print(set_1.issubset(set_2))
print(set_2.issubset(set_1))
True
False
set_1 = {1, 2}
set_2 = {1, 2, 3}
print(set_1.issuperset(set_2))
print(set_2.issuperset(set_1))
False
True
set_1.add(4)
print(set_1)
{1, 2, 4}
set_2.update([4,5])
print(set_2)
{1, 2, 3, 4, 5}
set_2.remove(1)
print(set_2)
{2, 3, 4, 5}
# wenn etwas nicht existiert, gibts einen Fehler
set_2.remove(1)
print(set_2)
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-16-17b30976c166> in <module>
1 # wenn etwas nicht existiert, gibts einen Fehler
----> 2 set_2.remove(1)
3 print(set_2)
KeyError: 1
# dafür gibts die folgende Lösung
set_2.discard(1)
print(set_2)
{2, 3, 4, 5}
Was haben wir noch nicht probiert?¶
for method in [methode for methode in dir(set()) if not methode.startswith('__')]:
print(f' {method}', end=",")
add, clear, copy, difference, difference_update, discard, intersection, intersection_update, isdisjoint, issubset, issuperset, pop, remove, symmetric_difference, symmetric_difference_update, union, update,
import random
gedicht = """Blauer Hals und bunter Schweif,
Graue Flügeldecken,
Und darunter gelber Streif,
Stimme zum Erschrecken;
Spannst du deinen Farbenreif
Magst du Luft erwecken;
Doch die Füße häßlich steif.
Kannst du nicht verdecken."""
words = gedicht.split()
def get_random_word():
return random.choice(words)
def get_unique_words():
words = set()
for _ in range(1000):
words.add(get_random_word())
return words
get_unique_words()
{'Blauer',
'Doch',
'Erschrecken;',
'Farbenreif',
'Flügeldecken,',
'Füße',
'Graue',
'Hals',
'Kannst',
'Luft',
'Magst',
'Schweif,',
'Spannst',
'Stimme',
'Streif,',
'Und',
'bunter',
'darunter',
'deinen',
'die',
'du',
'erwecken;',
'gelber',
'häßlich',
'nicht',
'steif.',
'und',
'verdecken.',
'zum'}
Weiterführende Links: