Sets (ungeordnete Daten mit optimierten logischen Operationen)

Datentypen in Python

Jason Myers

Instructor

Set

  • Eindeutig
  • Ungeordnet
  • Änderbar
  • Pythons Umsetzung der Mengenlehre
Datentypen in Python

Sets erstellen

  • Sets werden aus einer Liste erstellt
cookies_eaten_today = ['chocolate chip', 'peanut butter', 
   ...: 'chocolate chip', 'oatmeal cream', 'chocolate chip']

types_of_cookies_eaten = set(cookies_eaten_today)
print(types_of_cookies_eaten)
set(['chocolate chip', 'oatmeal cream', 'peanut butter'])
Datentypen in Python

Sets ändern

  • .add() fügt einzelne Elemente hinzu
types_of_cookies_eaten.add('biscotti')

types_of_cookies_eaten.add('chocolate chip')

print(types_of_cookies_eaten)
set(['chocolate chip', 'oatmeal cream', 'peanut butter', 'biscotti'])
Datentypen in Python

Sets updaten

  • .update() fügt eine weitere Menge oder Liste zusammen
cookies_hugo_ate = ['chocolate chip', 'anzac']

types_of_cookies_eaten.update(cookies_hugo_ate)

print(types_of_cookies_eaten)
set(['chocolate chip', 'anzac', 'oatmeal cream',  'peanut butter', 'biscotti'])
Datentypen in Python

Daten aus Sets entfernen

  • .discard() entfernt ein Element sicher per Wert
  • .pop() entfernt und gibt ein beliebiges Element zurück (KeyError, wenn leer)
types_of_cookies_eaten.discard('biscotti')

print(types_of_cookies_eaten)
set(['chocolate chip', 'anzac', 'oatmeal cream', 'peanut butter'])
types_of_cookies_eaten.pop()
types_of_cookies_eaten.pop()
'chocolate chip'
'anzac'
Datentypen in Python

Mengenoperationen – Gemeinsamkeiten

  • .union() gibt die Vereinigung aller Namen zurück (or)
  • .intersection() findet Überschneidungen (and)
cookies_jason_ate = set(['chocolate chip', 'oatmeal cream',
'peanut butter'])
cookies_hugo_ate = set(['chocolate chip', 'anzac'])

cookies_jason_ate.union(cookies_hugo_ate)
set(['chocolate chip', 'anzac', 'oatmeal cream', 'peanut butter'])
cookies_jason_ate.intersection(cookies_hugo_ate)
set(['chocolate chip'])
Datentypen in Python

Mengenoperationen – Unterschiede

  • .difference() zeigt Elemente der Zielmenge, die nicht in den Argumenten sind (-)
  • Ziel ist entscheidend!
cookies_jason_ate.difference(cookies_hugo_ate)
set(['oatmeal cream', 'peanut butter'])
cookies_hugo_ate.difference(cookies_jason_ate)
set(['anzac'])
Datentypen in Python

Lass uns üben!

Datentypen in Python

Preparing Video For Download...