Zbiory (dane nieuporządkowane z zoptymalizowanymi operacjami logicznymi)

Typy danych w Pythonie

Jason Myers

Instructor

Zbiór

  • Unikalne
  • Nieuporządkowane
  • Mutowalne
  • Implementacja teorii zbiorów z matematyki w Pythonie
Typy danych w Pythonie

Tworzenie zbiorów

  • Zbiory tworzone są z listy
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'])
Typy danych w Pythonie

Modyfikowanie zbiorów

  • .add() dodaje pojedyncze elementy
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'])
Typy danych w Pythonie

Aktualizowanie zbiorów

  • .update() scala inny zbiór lub listę
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'])
Typy danych w Pythonie

Usuwanie danych ze zbiorów

  • .discard() bezpiecznie usuwa element ze zbioru według wartości
  • .pop() usuwa i zwraca losowy element ze zbioru (KeyError gdy zbiór jest pusty)
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'
Typy danych w Pythonie

Operacje na zbiorach – podobieństwa

  • Metoda .union() zwraca zbiór wszystkich elementów (or)
  • Metoda .intersection() identyfikuje wspólne dane (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'])
Typy danych w Pythonie

Operacje na zbiorach – różnice

  • Metoda .difference() identyfikuje elementy obecne w zbiorze, na którym wywołano metodę, a nieobecne w argumentach (-)
  • Kolejność ma znaczenie!
cookies_jason_ate.difference(cookies_hugo_ate)
set(['oatmeal cream', 'peanut butter'])
cookies_hugo_ate.difference(cookies_jason_ate)
set(['anzac'])
Typy danych w Pythonie

Czas na ćwiczenia!

Typy danych w Pythonie

Preparing Video For Download...