Множини (невпорядковані дані з оптимізованими логічними операціями)

Типи даних у Python

Jason Myers

Instructor

Множина

  • Унікальні
  • Невпорядковані
  • Змінні
  • Реалізація в Python теорії множин із математики
Типи даних у Python

Створення множин

  • Множини створюють зі списку
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'])
Типи даних у Python

Зміна множин

  • .add() додає по одному елементу
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'])
Типи даних у Python

Оновлення множин

  • .update() об'єднує з іншою множиною або списком
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'])
Типи даних у Python

Вилучення даних із множин

  • .discard() безпечно вилучає елемент за значенням
  • .pop() вилучає й повертає довільний елемент (KeyError, якщо порожньо)
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'
Типи даних у Python

Операції з множинами — спільні елементи

  • Метод .union() повертає множину всіх назв («or»)
  • Метод .intersection() знаходить спільні дані («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'])
Типи даних у Python

Операції з множинами — відмінності

  • Метод .difference() знаходить елементи, що є в поточній множині, але відсутні в аргументі («-»)
  • Важлива цільова множина!
cookies_jason_ate.difference(cookies_hugo_ate)
set(['oatmeal cream', 'peanut butter'])
cookies_hugo_ate.difference(cookies_jason_ate)
set(['anzac'])
Типи даних у Python

Давайте потренуємось!

Типи даних у Python

Preparing Video For Download...