Sets

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: